Changed JsonArray tests to show the issue

This commit is contained in:
Benoit Blanchon
2014-08-04 09:22:45 +02:00
parent df52dceaa1
commit bc86ae800a
4 changed files with 25 additions and 19 deletions

View File

@ -20,11 +20,16 @@ namespace ArduinoJson
} }
void add(const Printable& nestedObject)
{
if (count < capacity)
items[count++] = nestedObject;
}
template<typename T> template<typename T>
void add(T value) void add(T value)
{ {
if (count >= capacity) return; if (count < capacity)
items[count++] = value; items[count++] = value;
} }

View File

@ -35,7 +35,7 @@ namespace ArduinoJson
content.asLong = value; content.asLong = value;
} }
void operator=(Printable& value) void operator=(const Printable& value)
{ {
printToImpl = &printPrintableTo; printToImpl = &printPrintableTo;
content.asPrintable = &value; content.asPrintable = &value;
@ -89,7 +89,7 @@ namespace ArduinoJson
return content.asLong; return content.asLong;
} }
operator Printable&() operator const Printable&()
{ {
return *content.asPrintable; return *content.asPrintable;
} }
@ -112,7 +112,7 @@ namespace ArduinoJson
bool asBool; bool asBool;
double asDouble; double asDouble;
long asLong; long asLong;
Printable* asPrintable; const Printable* asPrintable;
const char* asString; const char* asString;
}; };

View File

@ -124,13 +124,19 @@ namespace JsonGeneratorTests
TEST_METHOD(OneEmptyNestedArray) TEST_METHOD(OneEmptyNestedArray)
{ {
addNested(JsonArray<1>()); JsonArray<1> nestedArray;
arr.add(nestedArray);
outputMustBe("[[]]"); outputMustBe("[[]]");
} }
TEST_METHOD(OneEmptyNestedHash) TEST_METHOD(OneEmptyNestedHash)
{ {
addNested(JsonHashTable<1>()); JsonObject<1> nestedObject;
arr.add(nestedObject);
outputMustBe("[{}]"); outputMustBe("[{}]");
} }
@ -139,18 +145,13 @@ namespace JsonGeneratorTests
JsonArray<1> nestedArray; JsonArray<1> nestedArray;
nestedArray.add(1); nestedArray.add(1);
addNested(nestedArray); arr.add(nestedArray);
outputMustBe("[[1]]"); outputMustBe("[[1]]");
} }
private: private:
void addNested(Printable& value)
{
arr.add<Printable&>(value);
}
template<typename T> template<typename T>
void add(T value) void add(T value)
{ {

View File

@ -71,7 +71,7 @@ namespace JsonGeneratorTests
void setValueAndCheckCast(JsonArray<N>& expected) void setValueAndCheckCast(JsonArray<N>& expected)
{ {
value = expected; value = expected;
Printable& actual = value; const Printable& actual = value;
Assert::AreEqual((void*) &expected, (void*) &actual); Assert::AreEqual((void*) &expected, (void*) &actual);
} }
}; };