| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #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());
- }
- };
- }
|