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 "ParsedValueTest.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 ParsedValueTest::ParsedValueTest()
vwochnik 0:789029e49ea1 7 {
vwochnik 0:789029e49ea1 8 }
vwochnik 0:789029e49ea1 9
vwochnik 0:789029e49ea1 10 void ParsedValueTest::test()
vwochnik 0:789029e49ea1 11 {
vwochnik 0:789029e49ea1 12 testNull();
vwochnik 0:789029e49ea1 13 testInteger("0", 0l);
vwochnik 0:789029e49ea1 14 testInteger("-1", -1l);
vwochnik 0:789029e49ea1 15 testInteger("1", 1l);
vwochnik 0:789029e49ea1 16 testInteger("300", 300l);
vwochnik 0:789029e49ea1 17 testInteger("-300", -300l);
vwochnik 0:789029e49ea1 18 testInteger("30000000000", 30000000000l);
vwochnik 0:789029e49ea1 19 testInteger("-30000000000", -30000000000l);
vwochnik 0:789029e49ea1 20 testFloat("1.0", 1.0);
vwochnik 0:789029e49ea1 21 testFloat(".1", 0.1);
vwochnik 0:789029e49ea1 22 testFloat("-.1", -0.1);
vwochnik 0:789029e49ea1 23 testFloat("-1.0", -1.0);
vwochnik 0:789029e49ea1 24 testFloat("1.2345", 1.2345);
vwochnik 0:789029e49ea1 25 testFloat("-1.2345", -1.2345);
vwochnik 0:789029e49ea1 26 testFloat("12345.2345", 12345.2345);
vwochnik 0:789029e49ea1 27 testFloat("-12345.2345", -12345.2345);
vwochnik 0:789029e49ea1 28 testCharacter("Hello", "Hello");
vwochnik 0:789029e49ea1 29 testCharacter("123123.", "123123.");
vwochnik 0:789029e49ea1 30 testCharacter("-123123.", "-123123.");
vwochnik 0:789029e49ea1 31 testCharacter("-", "-");
vwochnik 0:789029e49ea1 32 }
vwochnik 0:789029e49ea1 33
vwochnik 0:789029e49ea1 34 void ParsedValueTest::testNull()
vwochnik 0:789029e49ea1 35 {
vwochnik 0:789029e49ea1 36 ParsedValue value("");
vwochnik 0:789029e49ea1 37 assert(value.valueType() == VALUE_NULL);
vwochnik 0:789029e49ea1 38 assert(value.characterValue() == NULL);
vwochnik 0:789029e49ea1 39 assert(value.integerValue() == 0l);
vwochnik 0:789029e49ea1 40 assert(value.floatValue() == 0.0);
vwochnik 0:789029e49ea1 41 assert(value.length() == 0);
vwochnik 0:789029e49ea1 42 value.write(sink);
vwochnik 0:789029e49ea1 43 assert(strcmp(sink.value(), "") == 0);
vwochnik 0:789029e49ea1 44 sink.clear();
vwochnik 0:789029e49ea1 45
vwochnik 0:789029e49ea1 46 Value *copy = value.copy();
vwochnik 0:789029e49ea1 47 assert(copy->length() == value.length());
vwochnik 0:789029e49ea1 48 assert(copy->valueType() == value.valueType());
vwochnik 0:789029e49ea1 49 assert(copy->characterValue() == value.characterValue());
vwochnik 0:789029e49ea1 50 delete copy;
vwochnik 0:789029e49ea1 51 }
vwochnik 0:789029e49ea1 52
vwochnik 0:789029e49ea1 53 void ParsedValueTest::testInteger(const char *string, long expected)
vwochnik 0:789029e49ea1 54 {
vwochnik 0:789029e49ea1 55 ParsedValue value(string);
vwochnik 0:789029e49ea1 56 assert(value.length() == strlen(string));
vwochnik 0:789029e49ea1 57 assert(value.valueType() == VALUE_INTEGER);
vwochnik 0:789029e49ea1 58 assert(value.integerValue() == expected);
vwochnik 0:789029e49ea1 59 value.write(sink);
vwochnik 0:789029e49ea1 60 assert(strcmp(string, sink.value()) == 0);
vwochnik 0:789029e49ea1 61 sink.clear();
vwochnik 0:789029e49ea1 62
vwochnik 0:789029e49ea1 63 Value *copy = value.copy();
vwochnik 0:789029e49ea1 64
vwochnik 0:789029e49ea1 65 assert(copy->length() == value.length());
vwochnik 0:789029e49ea1 66 assert(copy->valueType() == value.valueType());
vwochnik 0:789029e49ea1 67 assert(copy->integerValue() == value.integerValue());
vwochnik 0:789029e49ea1 68 copy->write(sink);
vwochnik 0:789029e49ea1 69 assert(strcmp(string, sink.value()) == 0);
vwochnik 0:789029e49ea1 70 sink.clear();
vwochnik 0:789029e49ea1 71 delete copy;
vwochnik 0:789029e49ea1 72 }
vwochnik 0:789029e49ea1 73
vwochnik 0:789029e49ea1 74 void ParsedValueTest::testFloat(const char *string, double expected)
vwochnik 0:789029e49ea1 75 {
vwochnik 0:789029e49ea1 76 ParsedValue value(string);
vwochnik 0:789029e49ea1 77 assert(value.length() == strlen(string));
vwochnik 0:789029e49ea1 78 assert(value.valueType() == VALUE_FLOAT);
vwochnik 0:789029e49ea1 79 assert(value.floatValue() == expected);
vwochnik 0:789029e49ea1 80 value.write(sink);
vwochnik 0:789029e49ea1 81 assert(strcmp(string, sink.value()) == 0);
vwochnik 0:789029e49ea1 82 sink.clear();
vwochnik 0:789029e49ea1 83
vwochnik 0:789029e49ea1 84 Value *copy = value.copy();
vwochnik 0:789029e49ea1 85
vwochnik 0:789029e49ea1 86 assert(copy->length() == value.length());
vwochnik 0:789029e49ea1 87 assert(copy->valueType() == value.valueType());
vwochnik 0:789029e49ea1 88 assert(copy->floatValue() == value.floatValue());
vwochnik 0:789029e49ea1 89 copy->write(sink);
vwochnik 0:789029e49ea1 90 assert(strcmp(string, sink.value()) == 0);
vwochnik 0:789029e49ea1 91 sink.clear();
vwochnik 0:789029e49ea1 92 delete copy;
vwochnik 0:789029e49ea1 93 }
vwochnik 0:789029e49ea1 94
vwochnik 0:789029e49ea1 95 void ParsedValueTest::testCharacter(const char *string, const char *expected)
vwochnik 0:789029e49ea1 96 {
vwochnik 0:789029e49ea1 97 ParsedValue value(string);
vwochnik 0:789029e49ea1 98 assert(value.length() == strlen(expected));
vwochnik 0:789029e49ea1 99 assert(value.valueType() == VALUE_CHARACTER);
vwochnik 0:789029e49ea1 100 assert(value.characterValue() == string);
vwochnik 0:789029e49ea1 101 value.write(sink);
vwochnik 0:789029e49ea1 102 assert(strcmp(expected, sink.value()) == 0);
vwochnik 0:789029e49ea1 103 sink.clear();
vwochnik 0:789029e49ea1 104
vwochnik 0:789029e49ea1 105 Value *copy = value.copy();
vwochnik 0:789029e49ea1 106
vwochnik 0:789029e49ea1 107 assert(copy->length() == value.length());
vwochnik 0:789029e49ea1 108 assert(copy->valueType() == value.valueType());
vwochnik 0:789029e49ea1 109 assert(strcmp(copy->characterValue(), value.characterValue()) == 0);
vwochnik 0:789029e49ea1 110 assert(copy->characterValue() != value.characterValue());
vwochnik 0:789029e49ea1 111 delete copy;
vwochnik 0:789029e49ea1 112 }
vwochnik 0:789029e49ea1 113