Unit tests for SmartRest
Dependencies: C027 SmartRest mbed
mock/MockClient.cpp@0:789029e49ea1, 2014-03-24 (annotated)
- Committer:
- vwochnik
- Date:
- Mon Mar 24 10:12:45 2014 +0000
- Revision:
- 0:789029e49ea1
fix
Who changed what in which revision?
User | Revision | Line number | New 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 |