Added JsonObjectIterator

This commit is contained in:
Benoit Blanchon
2014-07-18 22:40:50 +02:00
parent b75d32e980
commit 851d21e08c
8 changed files with 158 additions and 16 deletions

View File

@ -7,25 +7,28 @@ using namespace ArduinoJson::Parser;
namespace JsonParserTests
{
TEST_CLASS(JsonArrayIteratorTests)
{
public:
TEST_METHOD(ThreeIntegers)
{
char json [] = "[1,2,3]";
long expected [] = { 1, 2, 3 };
JsonParser<4> parser;
TEST_CLASS(JsonObjectIteratorTests)
{
public:
JsonArray a = parser.parse(json);
TEST_METHOD(ThreeStrings)
{
char json [] = "{\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\"}";
char* expectedKeys [] = { "key1", "key2", "key3" };
char* expectedValues [] = { "value1", "value2", "value3" };
JsonParser<7> parser;
JsonHashTable a = parser.parse(json);
int index = 0;
for (long i : a)
for (auto i : a)
{
Assert::AreEqual(expected[index++], i);
Assert::AreEqual(expectedKeys[index], i.key());
Assert::AreEqual(expectedValues[index], (const char*) i.value());
index++;
}
}
}
};
};
}

View File

@ -0,0 +1,31 @@
#include "CppUnitTest.h"
#include "JsonParser.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace ArduinoJson::Parser;
namespace JsonParserTests
{
TEST_CLASS(JsonArrayIteratorTests)
{
public:
TEST_METHOD(ThreeIntegers)
{
char json [] = "[1,2,3]";
long expected [] = { 1, 2, 3 };
JsonParser<4> parser;
JsonArray a = parser.parse(json);
int index = 0;
for (long i : a)
{
Assert::AreEqual(expected[index++], i);
}
}
};
}

View File

@ -93,6 +93,7 @@
<ClCompile Include="..\JsonParser\JsonValue.cpp" />
<ClCompile Include="JsonArrayIteratorTests.cpp" />
<ClCompile Include="JsonArrayTests.cpp" />
<ClCompile Include="JsonObjectIteratorTests.cpp" />
<ClCompile Include="JsonObjectTests.cpp" />
<ClCompile Include="GbathreeBug.cpp" />
</ItemGroup>
@ -101,6 +102,8 @@
<ClInclude Include="..\JsonParser\JsonArray.h" />
<ClInclude Include="..\JsonParser\JsonArrayIterator.h" />
<ClInclude Include="..\JsonParser\JsonObject.h" />
<ClInclude Include="..\JsonParser\JsonObjectIterator.h" />
<ClInclude Include="..\JsonParser\JsonPair.h" />
<ClInclude Include="..\JsonParser\JsonParser.h" />
<ClInclude Include="..\JsonParser\JsonParserBase.h" />
<ClInclude Include="..\JsonParser\JsonToken.h" />

View File

@ -45,6 +45,9 @@
<ClCompile Include="JsonObjectTests.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="JsonObjectIteratorTests.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\JsonParser\jsmn.h">
@ -71,5 +74,11 @@
<ClInclude Include="..\JsonParser\JsonObject.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\JsonParser\JsonPair.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\JsonParser\JsonObjectIterator.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>