Unit tests for SmartRest
Dependencies: C027 SmartRest mbed
parser/ParserTest.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 "ParserTest.h" |
vwochnik | 0:789029e49ea1 | 2 | #include <stdio.h> |
vwochnik | 0:789029e49ea1 | 3 | #include <assert.h> |
vwochnik | 0:789029e49ea1 | 4 | #include <ParsedRecord.h> |
vwochnik | 0:789029e49ea1 | 5 | #include <string.h> |
vwochnik | 0:789029e49ea1 | 6 | |
vwochnik | 0:789029e49ea1 | 7 | ParserTest::ParserTest() |
vwochnik | 0:789029e49ea1 | 8 | { |
vwochnik | 0:789029e49ea1 | 9 | } |
vwochnik | 0:789029e49ea1 | 10 | |
vwochnik | 0:789029e49ea1 | 11 | void ParserTest::testAll() |
vwochnik | 0:789029e49ea1 | 12 | { |
vwochnik | 0:789029e49ea1 | 13 | puts("Parser test scenario 1"); |
vwochnik | 0:789029e49ea1 | 14 | testScenario1(); |
vwochnik | 0:789029e49ea1 | 15 | puts("Parser test scenario 2"); |
vwochnik | 0:789029e49ea1 | 16 | testScenario2(); |
vwochnik | 0:789029e49ea1 | 17 | puts("Parser test scenario 3"); |
vwochnik | 0:789029e49ea1 | 18 | testScenario3(); |
vwochnik | 0:789029e49ea1 | 19 | } |
vwochnik | 0:789029e49ea1 | 20 | |
vwochnik | 0:789029e49ea1 | 21 | void ParserTest::testScenario1() |
vwochnik | 0:789029e49ea1 | 22 | { |
vwochnik | 0:789029e49ea1 | 23 | ParsedRecord record; uint8_t res; |
vwochnik | 0:789029e49ea1 | 24 | char str[] = "100,Value1,Value2\r\n"; |
vwochnik | 0:789029e49ea1 | 25 | |
vwochnik | 0:789029e49ea1 | 26 | _source.set(str); |
vwochnik | 0:789029e49ea1 | 27 | res = _parser.readFrom(_source, record); |
vwochnik | 0:789029e49ea1 | 28 | assert(res == PARSER_SUCCESS); |
vwochnik | 0:789029e49ea1 | 29 | assert(record); |
vwochnik | 0:789029e49ea1 | 30 | assert(record.values() == 3); |
vwochnik | 0:789029e49ea1 | 31 | assert(record.value(0).integerValue() == 100); |
vwochnik | 0:789029e49ea1 | 32 | assert(strcmp(record.value(1).characterValue(), "Value1") == 0); |
vwochnik | 0:789029e49ea1 | 33 | assert(strcmp(record.value(2).characterValue(), "Value2") == 0); |
vwochnik | 0:789029e49ea1 | 34 | |
vwochnik | 0:789029e49ea1 | 35 | res = _parser.readFrom(_source, record); |
vwochnik | 0:789029e49ea1 | 36 | assert(res == PARSER_END_OF_RESPONSE); |
vwochnik | 0:789029e49ea1 | 37 | assert(!record); |
vwochnik | 0:789029e49ea1 | 38 | } |
vwochnik | 0:789029e49ea1 | 39 | |
vwochnik | 0:789029e49ea1 | 40 | void ParserTest::testScenario2() |
vwochnik | 0:789029e49ea1 | 41 | { |
vwochnik | 0:789029e49ea1 | 42 | ParsedRecord record; uint8_t res; |
vwochnik | 0:789029e49ea1 | 43 | char str[] = "100,Value1,Value2\r\n" |
vwochnik | 0:789029e49ea1 | 44 | "200,\"Hello, Test\", hello ,5.3\r\n"; |
vwochnik | 0:789029e49ea1 | 45 | |
vwochnik | 0:789029e49ea1 | 46 | _source.set(str); |
vwochnik | 0:789029e49ea1 | 47 | res = _parser.readFrom(_source, record); |
vwochnik | 0:789029e49ea1 | 48 | assert(res == PARSER_SUCCESS); |
vwochnik | 0:789029e49ea1 | 49 | assert(record); |
vwochnik | 0:789029e49ea1 | 50 | assert(record.values() == 3); |
vwochnik | 0:789029e49ea1 | 51 | assert(record.value(0).integerValue() == 100); |
vwochnik | 0:789029e49ea1 | 52 | assert(strcmp(record.value(1).characterValue(), "Value1") == 0); |
vwochnik | 0:789029e49ea1 | 53 | assert(strcmp(record.value(2).characterValue(), "Value2") == 0); |
vwochnik | 0:789029e49ea1 | 54 | |
vwochnik | 0:789029e49ea1 | 55 | res = _parser.readFrom(_source, record); |
vwochnik | 0:789029e49ea1 | 56 | assert(res == PARSER_SUCCESS); |
vwochnik | 0:789029e49ea1 | 57 | assert(record); |
vwochnik | 0:789029e49ea1 | 58 | assert(record.values() == 4); |
vwochnik | 0:789029e49ea1 | 59 | assert(record.value(0).integerValue() == 200); |
vwochnik | 0:789029e49ea1 | 60 | assert(strcmp(record.value(1).characterValue(), "Hello, Test") == 0); |
vwochnik | 0:789029e49ea1 | 61 | assert(strcmp(record.value(2).characterValue(), "hello") == 0); |
vwochnik | 0:789029e49ea1 | 62 | assert(record.value(3).floatValue() == 5.3); |
vwochnik | 0:789029e49ea1 | 63 | |
vwochnik | 0:789029e49ea1 | 64 | res = _parser.readFrom(_source, record); |
vwochnik | 0:789029e49ea1 | 65 | assert(res == PARSER_END_OF_RESPONSE); |
vwochnik | 0:789029e49ea1 | 66 | assert(!record); |
vwochnik | 0:789029e49ea1 | 67 | } |
vwochnik | 0:789029e49ea1 | 68 | |
vwochnik | 0:789029e49ea1 | 69 | void ParserTest::testScenario3() |
vwochnik | 0:789029e49ea1 | 70 | { |
vwochnik | 0:789029e49ea1 | 71 | ParsedRecord record; uint8_t res; |
vwochnik | 0:789029e49ea1 | 72 | char str[] = "100,Val\"\"ue1,Value2\r\n"; |
vwochnik | 0:789029e49ea1 | 73 | |
vwochnik | 0:789029e49ea1 | 74 | _source.set(str); |
vwochnik | 0:789029e49ea1 | 75 | res = _parser.readFrom(_source, record); |
vwochnik | 0:789029e49ea1 | 76 | assert(res == PARSER_PARSE_ERROR); |
vwochnik | 0:789029e49ea1 | 77 | assert(!record); |
vwochnik | 0:789029e49ea1 | 78 | } |
vwochnik | 0:789029e49ea1 | 79 |