mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-17 20:42:24 +02:00
Added a test of an empty hashtable
This commit is contained in:
@ -11,23 +11,23 @@ namespace JsonGeneratorTests
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
TEST_METHOD(EmptyArray)
|
TEST_METHOD(Empty)
|
||||||
{
|
{
|
||||||
AssertJsonIs("[]");
|
assertJsonIs("[]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddNull)
|
TEST_METHOD(AddNull)
|
||||||
{
|
{
|
||||||
arr.add((char*)0);
|
arr.add((char*)0);
|
||||||
|
|
||||||
AssertJsonIs("[null]");
|
assertJsonIs("[null]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddOneString)
|
TEST_METHOD(AddOneString)
|
||||||
{
|
{
|
||||||
arr.add("hello");
|
arr.add("hello");
|
||||||
|
|
||||||
AssertJsonIs("[\"hello\"]");
|
assertJsonIs("[\"hello\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddTwoStrings)
|
TEST_METHOD(AddTwoStrings)
|
||||||
@ -35,7 +35,7 @@ namespace JsonGeneratorTests
|
|||||||
arr.add("hello");
|
arr.add("hello");
|
||||||
arr.add("world");
|
arr.add("world");
|
||||||
|
|
||||||
AssertJsonIs("[\"hello\",\"world\"]");
|
assertJsonIs("[\"hello\",\"world\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddOneStringOverCapacity)
|
TEST_METHOD(AddOneStringOverCapacity)
|
||||||
@ -44,14 +44,14 @@ namespace JsonGeneratorTests
|
|||||||
arr.add("world");
|
arr.add("world");
|
||||||
arr.add("lost");
|
arr.add("lost");
|
||||||
|
|
||||||
AssertJsonIs("[\"hello\",\"world\"]");
|
assertJsonIs("[\"hello\",\"world\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddOneNumber)
|
TEST_METHOD(AddOneNumber)
|
||||||
{
|
{
|
||||||
arr.add(3.14);
|
arr.add(3.14);
|
||||||
|
|
||||||
AssertJsonIs("[3.14]");
|
assertJsonIs("[3.14]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddTwoNumbers)
|
TEST_METHOD(AddTwoNumbers)
|
||||||
@ -59,7 +59,7 @@ namespace JsonGeneratorTests
|
|||||||
arr.add(3.14);
|
arr.add(3.14);
|
||||||
arr.add(2.72);
|
arr.add(2.72);
|
||||||
|
|
||||||
AssertJsonIs("[3.14,2.72]");
|
assertJsonIs("[3.14,2.72]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddOneNumberOverCapacity)
|
TEST_METHOD(AddOneNumberOverCapacity)
|
||||||
@ -68,21 +68,21 @@ namespace JsonGeneratorTests
|
|||||||
arr.add(2.72);
|
arr.add(2.72);
|
||||||
arr.add(1.41);
|
arr.add(1.41);
|
||||||
|
|
||||||
AssertJsonIs("[3.14,2.72]");
|
assertJsonIs("[3.14,2.72]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddTrue)
|
TEST_METHOD(AddTrue)
|
||||||
{
|
{
|
||||||
arr.add(true);
|
arr.add(true);
|
||||||
|
|
||||||
AssertJsonIs("[true]");
|
assertJsonIs("[true]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddFalse)
|
TEST_METHOD(AddFalse)
|
||||||
{
|
{
|
||||||
arr.add(false);
|
arr.add(false);
|
||||||
|
|
||||||
AssertJsonIs("[false]");
|
assertJsonIs("[false]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddTwoBooleans)
|
TEST_METHOD(AddTwoBooleans)
|
||||||
@ -90,7 +90,7 @@ namespace JsonGeneratorTests
|
|||||||
arr.add(false);
|
arr.add(false);
|
||||||
arr.add(true);
|
arr.add(true);
|
||||||
|
|
||||||
AssertJsonIs("[false,true]");
|
assertJsonIs("[false,true]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddOneBooleanOverCapacity)
|
TEST_METHOD(AddOneBooleanOverCapacity)
|
||||||
@ -99,7 +99,7 @@ namespace JsonGeneratorTests
|
|||||||
arr.add(true);
|
arr.add(true);
|
||||||
arr.add(false);
|
arr.add(false);
|
||||||
|
|
||||||
AssertJsonIs("[false,true]");
|
assertJsonIs("[false,true]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddOneEmptyNestedArray)
|
TEST_METHOD(AddOneEmptyNestedArray)
|
||||||
@ -108,7 +108,7 @@ namespace JsonGeneratorTests
|
|||||||
|
|
||||||
arr.add(nestedArray);
|
arr.add(nestedArray);
|
||||||
|
|
||||||
AssertJsonIs("[[]]");
|
assertJsonIs("[[]]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_METHOD(AddOneNestedArrayWithOneItem)
|
TEST_METHOD(AddOneNestedArrayWithOneItem)
|
||||||
@ -118,10 +118,12 @@ namespace JsonGeneratorTests
|
|||||||
|
|
||||||
arr.add(nestedArray);
|
arr.add(nestedArray);
|
||||||
|
|
||||||
AssertJsonIs("[[3.14]]");
|
assertJsonIs("[[3.14]]");
|
||||||
}
|
}
|
||||||
|
|
||||||
void AssertJsonIs(const char* expected)
|
private:
|
||||||
|
|
||||||
|
void assertJsonIs(const char* expected)
|
||||||
{
|
{
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
|
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="JsonArrayTests.cpp" />
|
<ClCompile Include="JsonArrayTests.cpp" />
|
||||||
|
<ClCompile Include="JsonHashTableTests.cpp" />
|
||||||
<ClCompile Include="JsonObjectBase.cpp" />
|
<ClCompile Include="JsonObjectBase.cpp" />
|
||||||
<ClCompile Include="StringBuilder.cpp" />
|
<ClCompile Include="StringBuilder.cpp" />
|
||||||
<ClCompile Include="StringBuilderAppendEscapedTests.cpp" />
|
<ClCompile Include="StringBuilderAppendEscapedTests.cpp" />
|
||||||
@ -90,6 +91,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="JsonArray.h" />
|
<ClInclude Include="JsonArray.h" />
|
||||||
|
<ClInclude Include="JsonHashTable.h" />
|
||||||
<ClInclude Include="JsonObjectBase.h" />
|
<ClInclude Include="JsonObjectBase.h" />
|
||||||
<ClInclude Include="StringBuilder.h" />
|
<ClInclude Include="StringBuilder.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
<ClCompile Include="StringBuilderAppendTests.cpp">
|
<ClCompile Include="StringBuilderAppendTests.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="JsonHashTableTests.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="JsonArray.h">
|
<ClInclude Include="JsonArray.h">
|
||||||
@ -41,5 +44,8 @@
|
|||||||
<ClInclude Include="JsonObjectBase.h">
|
<ClInclude Include="JsonObjectBase.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="JsonHashTable.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
38
JsonGeneratorTests/JsonHashTable.h
Normal file
38
JsonGeneratorTests/JsonHashTable.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Arduino JSON library
|
||||||
|
* Benoit Blanchon 2014 - MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "JsonObjectBase.h"
|
||||||
|
|
||||||
|
template<int N>
|
||||||
|
class JsonHashTable : public JsonObjectBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
using JsonObjectBase::writeTo;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/* struct KeyValuePair
|
||||||
|
{
|
||||||
|
const char* key;
|
||||||
|
ObjectContainer value;
|
||||||
|
};*/
|
||||||
|
|
||||||
|
virtual void writeTo(StringBuilder& sb)
|
||||||
|
{
|
||||||
|
sb.append("{");
|
||||||
|
|
||||||
|
/*for (int i = 0; i < itemCount; i++)
|
||||||
|
{
|
||||||
|
if (i>0) sb.append(",");
|
||||||
|
writeObjectTo(items[i], sb);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
sb.append("}");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
30
JsonGeneratorTests/JsonHashTableTests.cpp
Normal file
30
JsonGeneratorTests/JsonHashTableTests.cpp
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include "CppUnitTest.h"
|
||||||
|
#include "JsonHashTable.h"
|
||||||
|
|
||||||
|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
||||||
|
|
||||||
|
namespace JsonGeneratorTests
|
||||||
|
{
|
||||||
|
TEST_CLASS(JsonHashTableTests)
|
||||||
|
{
|
||||||
|
JsonHashTable<2> hash;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
TEST_METHOD(Empty)
|
||||||
|
{
|
||||||
|
assertJsonIs("{}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
void assertJsonIs(const char* expected)
|
||||||
|
{
|
||||||
|
char buffer[256];
|
||||||
|
|
||||||
|
hash.writeTo(buffer, sizeof(buffer));
|
||||||
|
|
||||||
|
Assert::AreEqual(expected, buffer);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
Reference in New Issue
Block a user