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 "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