diff --git a/tests/ArduinoJsonParserTests.vcxproj b/tests/ArduinoJsonParserTests.vcxproj index ed51aa30..6569011b 100644 --- a/tests/ArduinoJsonParserTests.vcxproj +++ b/tests/ArduinoJsonParserTests.vcxproj @@ -96,6 +96,7 @@ + diff --git a/tests/ArduinoJsonParserTests.vcxproj.filters b/tests/ArduinoJsonParserTests.vcxproj.filters index 50db0cae..4fc06abc 100644 --- a/tests/ArduinoJsonParserTests.vcxproj.filters +++ b/tests/ArduinoJsonParserTests.vcxproj.filters @@ -53,5 +53,8 @@ Source Files + + Source Files + \ No newline at end of file diff --git a/tests/TestArrays.cpp b/tests/TestArrays.cpp new file mode 100644 index 00000000..b054de1b --- /dev/null +++ b/tests/TestArrays.cpp @@ -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)); + } + } + } + } + }; +} \ No newline at end of file