Unit tests for SmartRest
Dependencies: C027 SmartRest mbed
values/CharValueTest.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 "CharValueTest.h" |
vwochnik | 0:789029e49ea1 | 2 | #include <stdio.h> |
vwochnik | 0:789029e49ea1 | 3 | #include <assert.h> |
vwochnik | 0:789029e49ea1 | 4 | #include <string.h> |
vwochnik | 0:789029e49ea1 | 5 | |
vwochnik | 0:789029e49ea1 | 6 | CharValueTest::CharValueTest() |
vwochnik | 0:789029e49ea1 | 7 | { |
vwochnik | 0:789029e49ea1 | 8 | } |
vwochnik | 0:789029e49ea1 | 9 | |
vwochnik | 0:789029e49ea1 | 10 | void CharValueTest::test() |
vwochnik | 0:789029e49ea1 | 11 | { |
vwochnik | 0:789029e49ea1 | 12 | testValue("abc", "abc"); |
vwochnik | 0:789029e49ea1 | 13 | testValue("hello world", "hello world"); |
vwochnik | 0:789029e49ea1 | 14 | testValue("hello, world", "\"hello, world\""); |
vwochnik | 0:789029e49ea1 | 15 | testValue(" hello world", "\" hello world\""); |
vwochnik | 0:789029e49ea1 | 16 | testValue("hello world ", "\"hello world \""); |
vwochnik | 0:789029e49ea1 | 17 | testValue("hello\"world", "\"hello\"\"world\""); |
vwochnik | 0:789029e49ea1 | 18 | testValue("hello\"\"world", "\"hello\"\"\"\"world\""); |
vwochnik | 0:789029e49ea1 | 19 | testValue("hello\",world ", "\"hello\"\",world \""); |
vwochnik | 0:789029e49ea1 | 20 | testNull(); |
vwochnik | 0:789029e49ea1 | 21 | } |
vwochnik | 0:789029e49ea1 | 22 | |
vwochnik | 0:789029e49ea1 | 23 | void CharValueTest::testValue(const char *string, const char *expected) |
vwochnik | 0:789029e49ea1 | 24 | { |
vwochnik | 0:789029e49ea1 | 25 | printf("Expecting '%s' for value '%s'\n", expected, string); |
vwochnik | 0:789029e49ea1 | 26 | CharValue value(string); |
vwochnik | 0:789029e49ea1 | 27 | assert(value.length() == strlen(expected)); |
vwochnik | 0:789029e49ea1 | 28 | assert(value.valueType() == VALUE_CHARACTER); |
vwochnik | 0:789029e49ea1 | 29 | assert(value.characterValue() == string); |
vwochnik | 0:789029e49ea1 | 30 | value.write(sink); |
vwochnik | 0:789029e49ea1 | 31 | assert(strcmp(expected, sink.value()) == 0); |
vwochnik | 0:789029e49ea1 | 32 | sink.clear(); |
vwochnik | 0:789029e49ea1 | 33 | |
vwochnik | 0:789029e49ea1 | 34 | Value *copy = value.copy(); |
vwochnik | 0:789029e49ea1 | 35 | |
vwochnik | 0:789029e49ea1 | 36 | assert(copy->length() == value.length()); |
vwochnik | 0:789029e49ea1 | 37 | assert(copy->valueType() == value.valueType()); |
vwochnik | 0:789029e49ea1 | 38 | assert(strcmp(copy->characterValue(), value.characterValue()) == 0); |
vwochnik | 0:789029e49ea1 | 39 | assert(copy->characterValue() != value.characterValue()); |
vwochnik | 0:789029e49ea1 | 40 | delete copy; |
vwochnik | 0:789029e49ea1 | 41 | } |
vwochnik | 0:789029e49ea1 | 42 | |
vwochnik | 0:789029e49ea1 | 43 | void CharValueTest::testNull() |
vwochnik | 0:789029e49ea1 | 44 | { |
vwochnik | 0:789029e49ea1 | 45 | puts("Testing character null value."); |
vwochnik | 0:789029e49ea1 | 46 | |
vwochnik | 0:789029e49ea1 | 47 | CharValue value(""); |
vwochnik | 0:789029e49ea1 | 48 | assert(value.length() == 0); |
vwochnik | 0:789029e49ea1 | 49 | assert(value.valueType() == VALUE_NULL); |
vwochnik | 0:789029e49ea1 | 50 | assert(value.characterValue() == NULL); |
vwochnik | 0:789029e49ea1 | 51 | value.write(sink); |
vwochnik | 0:789029e49ea1 | 52 | assert(strcmp("", sink.value()) == 0); |
vwochnik | 0:789029e49ea1 | 53 | sink.clear(); |
vwochnik | 0:789029e49ea1 | 54 | |
vwochnik | 0:789029e49ea1 | 55 | Value *copy = value.copy(); |
vwochnik | 0:789029e49ea1 | 56 | |
vwochnik | 0:789029e49ea1 | 57 | assert(copy->length() == value.length()); |
vwochnik | 0:789029e49ea1 | 58 | assert(copy->valueType() == value.valueType()); |
vwochnik | 0:789029e49ea1 | 59 | assert(copy->characterValue() == value.characterValue()); |
vwochnik | 0:789029e49ea1 | 60 | delete copy; |
vwochnik | 0:789029e49ea1 | 61 | } |
vwochnik | 0:789029e49ea1 | 62 |