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