Unit tests for SmartRest

Dependencies:   C027 SmartRest mbed

Committer:
vwochnik
Date:
Mon Mar 24 10:12:45 2014 +0000
Revision:
0:789029e49ea1
fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vwochnik 0:789029e49ea1 1 #include "MockClient.h"
vwochnik 0:789029e49ea1 2
vwochnik 0:789029e49ea1 3 #define STATE_INIT 0
vwochnik 0:789029e49ea1 4 #define STATE_IN_REQUEST 1
vwochnik 0:789029e49ea1 5 #define STATE_SENT_ID 2
vwochnik 0:789029e49ea1 6 #define STATE_SENT_DATA 3
vwochnik 0:789029e49ea1 7 #define STATE_REQ_COMPLETE 4
vwochnik 0:789029e49ea1 8 #define STATE_RECVD_RESPONSE 5
vwochnik 0:789029e49ea1 9 #define STATE_RECV_DATA 6
vwochnik 0:789029e49ea1 10
vwochnik 0:789029e49ea1 11 MockClient::MockClient()
vwochnik 0:789029e49ea1 12 {
vwochnik 0:789029e49ea1 13 _state = STATE_INIT;
vwochnik 0:789029e49ea1 14 _data = NULL;
vwochnik 0:789029e49ea1 15 _ident = NULL;
vwochnik 0:789029e49ea1 16 }
vwochnik 0:789029e49ea1 17
vwochnik 0:789029e49ea1 18 void MockClient::receiveData(const char* str)
vwochnik 0:789029e49ea1 19 {
vwochnik 0:789029e49ea1 20 _data = str;
vwochnik 0:789029e49ea1 21 }
vwochnik 0:789029e49ea1 22
vwochnik 0:789029e49ea1 23 char* MockClient::sentData()
vwochnik 0:789029e49ea1 24 {
vwochnik 0:789029e49ea1 25 return _sink.value();
vwochnik 0:789029e49ea1 26 }
vwochnik 0:789029e49ea1 27
vwochnik 0:789029e49ea1 28 void MockClient::clearSent()
vwochnik 0:789029e49ea1 29 {
vwochnik 0:789029e49ea1 30 _sink.clear();
vwochnik 0:789029e49ea1 31 }
vwochnik 0:789029e49ea1 32
vwochnik 0:789029e49ea1 33 uint8_t MockClient::beginRequest()
vwochnik 0:789029e49ea1 34 {
vwochnik 0:789029e49ea1 35 if (_state != STATE_INIT)
vwochnik 0:789029e49ea1 36 return CLIENT_INTERNAL_ERROR;
vwochnik 0:789029e49ea1 37 _state = STATE_IN_REQUEST;
vwochnik 0:789029e49ea1 38 return CLIENT_OK;
vwochnik 0:789029e49ea1 39 }
vwochnik 0:789029e49ea1 40
vwochnik 0:789029e49ea1 41 uint8_t MockClient::sendIdentifier(const char* identifier)
vwochnik 0:789029e49ea1 42 {
vwochnik 0:789029e49ea1 43 if (_state != STATE_IN_REQUEST)
vwochnik 0:789029e49ea1 44 return CLIENT_INTERNAL_ERROR;
vwochnik 0:789029e49ea1 45 _ident = (char*)identifier;
vwochnik 0:789029e49ea1 46 _state = STATE_SENT_ID;
vwochnik 0:789029e49ea1 47 return CLIENT_OK;
vwochnik 0:789029e49ea1 48 }
vwochnik 0:789029e49ea1 49
vwochnik 0:789029e49ea1 50 uint8_t MockClient::sendData(DataGenerator& generator)
vwochnik 0:789029e49ea1 51 {
vwochnik 0:789029e49ea1 52 if (_state != STATE_SENT_ID)
vwochnik 0:789029e49ea1 53 return CLIENT_INTERNAL_ERROR;
vwochnik 0:789029e49ea1 54 generator.writeTo(_sink);
vwochnik 0:789029e49ea1 55 _state = STATE_SENT_DATA;
vwochnik 0:789029e49ea1 56 return CLIENT_OK;
vwochnik 0:789029e49ea1 57 }
vwochnik 0:789029e49ea1 58
vwochnik 0:789029e49ea1 59 uint8_t MockClient::endRequest()
vwochnik 0:789029e49ea1 60 {
vwochnik 0:789029e49ea1 61 if ((_state != STATE_SENT_ID) && (_state != STATE_SENT_DATA))
vwochnik 0:789029e49ea1 62 return CLIENT_INTERNAL_ERROR;
vwochnik 0:789029e49ea1 63 _state = STATE_REQ_COMPLETE;
vwochnik 0:789029e49ea1 64 return CLIENT_OK;
vwochnik 0:789029e49ea1 65 }
vwochnik 0:789029e49ea1 66
vwochnik 0:789029e49ea1 67 uint8_t MockClient::awaitResponse()
vwochnik 0:789029e49ea1 68 {
vwochnik 0:789029e49ea1 69 if (_state != STATE_REQ_COMPLETE)
vwochnik 0:789029e49ea1 70 return CLIENT_INTERNAL_ERROR;
vwochnik 0:789029e49ea1 71 _state = STATE_RECVD_RESPONSE;
vwochnik 0:789029e49ea1 72 return CLIENT_OK;
vwochnik 0:789029e49ea1 73 }
vwochnik 0:789029e49ea1 74
vwochnik 0:789029e49ea1 75 AbstractDataSource& MockClient::receiveData()
vwochnik 0:789029e49ea1 76 {
vwochnik 0:789029e49ea1 77 if ((_state == STATE_RECVD_RESPONSE) && (_data != NULL))
vwochnik 0:789029e49ea1 78 _source.set(_data);
vwochnik 0:789029e49ea1 79 else
vwochnik 0:789029e49ea1 80 _source.clear();
vwochnik 0:789029e49ea1 81 _state = STATE_RECV_DATA;
vwochnik 0:789029e49ea1 82 return _source;
vwochnik 0:789029e49ea1 83 }
vwochnik 0:789029e49ea1 84
vwochnik 0:789029e49ea1 85 void MockClient::stop()
vwochnik 0:789029e49ea1 86 {
vwochnik 0:789029e49ea1 87 _state = STATE_INIT;
vwochnik 0:789029e49ea1 88 _sink.clear();
vwochnik 0:789029e49ea1 89 _source.clear();
vwochnik 0:789029e49ea1 90 }
vwochnik 0:789029e49ea1 91