mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-16 12:02:14 +02:00
141 lines
3.0 KiB
C++
141 lines
3.0 KiB
C++
#include "CppUnitTest.h"
|
|
#include "JsonParser.h"
|
|
|
|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
|
|
|
namespace ArduinoJsonParserTests
|
|
{
|
|
TEST_CLASS(TestArrays)
|
|
{
|
|
JsonParser<32> parser;
|
|
|
|
public:
|
|
|
|
TEST_METHOD(EmptyString)
|
|
{
|
|
char json[] = "";
|
|
|
|
JsonArray array = parser.parseArray(json);
|
|
Assert::IsFalse(array.success());
|
|
}
|
|
|
|
TEST_METHOD(EmptyArray)
|
|
{
|
|
char json[] = "[]";
|
|
|
|
JsonArray array = parser.parseArray(json);
|
|
Assert::IsTrue(array.success());
|
|
}
|
|
|
|
TEST_METHOD(TooFewClosingBrackets)
|
|
{
|
|
char json[] = "[[]";
|
|
|
|
JsonArray array = parser.parseArray(json);
|
|
Assert::IsFalse(array.success());
|
|
}
|
|
|
|
TEST_METHOD(TooManyClosingBrackets)
|
|
{
|
|
char json[] = "[]]";
|
|
|
|
JsonArray array = parser.parseArray(json);
|
|
Assert::IsFalse(array.success());
|
|
}
|
|
|
|
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(TwoDimensionsArray)
|
|
{
|
|
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(TreeDimensionsArray)
|
|
{
|
|
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));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
TEST_METHOD(OneDimensionArrayInHashTable)
|
|
{
|
|
char json[] = "{a:[0,0],b:[0,0]}";
|
|
|
|
JsonHashTable root = parser.parseHashTable(json);
|
|
Assert::IsTrue(root.success());
|
|
|
|
JsonArray arrayA = root.getArray("a");
|
|
Assert::IsTrue(arrayA.success());
|
|
Assert::AreEqual(2, arrayA.getLength());
|
|
|
|
JsonArray arrayB = root.getArray("b");
|
|
Assert::IsTrue(arrayB.success());
|
|
Assert::AreEqual(2, arrayB.getLength());
|
|
}
|
|
|
|
TEST_METHOD(TwoDimensionsArrayInHashTable)
|
|
{
|
|
char json[] = "{a:[[0],[0]],b:[[0],[0]]}";
|
|
|
|
JsonHashTable root = parser.parseHashTable(json);
|
|
Assert::IsTrue(root.success());
|
|
|
|
JsonArray arrayA = root.getArray("a");
|
|
Assert::IsTrue(arrayA.success());
|
|
Assert::AreEqual(2, arrayA.getLength());
|
|
|
|
JsonArray arrayB = root.getArray("b");
|
|
Assert::IsTrue(arrayB.success());
|
|
Assert::AreEqual(2, arrayB.getLength());
|
|
}
|
|
};
|
|
} |