forked from bblanchon/ArduinoJson
Added unit tests on multi-dimensional arrays to isolate the bug
This commit is contained in:
@ -96,6 +96,7 @@
|
|||||||
<ClCompile Include="..\JsonObjectBase.cpp" />
|
<ClCompile Include="..\JsonObjectBase.cpp" />
|
||||||
<ClCompile Include="..\utility\jsmn.cpp" />
|
<ClCompile Include="..\utility\jsmn.cpp" />
|
||||||
<ClCompile Include="TestArrayExample.cpp" />
|
<ClCompile Include="TestArrayExample.cpp" />
|
||||||
|
<ClCompile Include="TestArrays.cpp" />
|
||||||
<ClCompile Include="TestHashTableExample.cpp" />
|
<ClCompile Include="TestHashTableExample.cpp" />
|
||||||
<ClCompile Include="TestGbathreeStrings.cpp" />
|
<ClCompile Include="TestGbathreeStrings.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -53,5 +53,8 @@
|
|||||||
<ClCompile Include="TestGbathreeStrings.cpp">
|
<ClCompile Include="TestGbathreeStrings.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="TestArrays.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
77
tests/TestArrays.cpp
Normal file
77
tests/TestArrays.cpp
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
#include "CppUnitTest.h"
|
||||||
|
#include "JsonParser.h"
|
||||||
|
|
||||||
|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
||||||
|
|
||||||
|
namespace ArduinoJsonParserTests
|
||||||
|
{
|
||||||
|
TEST_CLASS(TestArrays)
|
||||||
|
{
|
||||||
|
JsonParser<32> parser;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
TEST_METHOD(OneDimensionArray)
|
||||||
|
{
|
||||||
|
char json [] = "[0,0]";
|
||||||
|
|
||||||
|
JsonArray array = parser.parseArray(json);
|
||||||
|
Assert::IsTrue(array.success());
|
||||||
|
Assert::AreEqual(2, array.getLength());
|
||||||
|
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
Assert::AreEqual(0L, array.getLong(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_METHOD(TwoDimensionArray)
|
||||||
|
{
|
||||||
|
char json[] = "[[0,0],[0,0]]";
|
||||||
|
|
||||||
|
JsonArray array1 = parser.parseArray(json);
|
||||||
|
Assert::IsTrue(array1.success());
|
||||||
|
Assert::AreEqual(2, array1.getLength());
|
||||||
|
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
JsonArray array2 = array1.getArray(i);
|
||||||
|
|
||||||
|
Assert::AreEqual(2, array2.getLength());
|
||||||
|
|
||||||
|
for (int j = 0; j < 2; j++)
|
||||||
|
{
|
||||||
|
Assert::AreEqual(0L, array2.getLong(j));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_METHOD(TreeDimensionArray)
|
||||||
|
{
|
||||||
|
char json[] = "[[[0,0],[0,0]],[[0,0],[0,0]]]]";
|
||||||
|
|
||||||
|
JsonArray array1 = parser.parseArray(json);
|
||||||
|
Assert::IsTrue(array1.success());
|
||||||
|
Assert::AreEqual(2, array1.getLength());
|
||||||
|
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
JsonArray array2 = array1.getArray(i);
|
||||||
|
|
||||||
|
Assert::AreEqual(2, array2.getLength());
|
||||||
|
|
||||||
|
for (int j = 0; j < 2; j++)
|
||||||
|
{
|
||||||
|
JsonArray array3 = array2.getArray(j);
|
||||||
|
|
||||||
|
Assert::AreEqual(2, array3.getLength());
|
||||||
|
|
||||||
|
for (int k = 0; k < 2; k++)
|
||||||
|
{
|
||||||
|
Assert::AreEqual(0L, array3.getLong(k));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
Reference in New Issue
Block a user