diff --git a/test/JsonParser_Nested_Tests.cpp b/test/JsonParser_Nested_Tests.cpp index 3a82bf44..07add6fc 100644 --- a/test/JsonParser_Nested_Tests.cpp +++ b/test/JsonParser_Nested_Tests.cpp @@ -6,17 +6,46 @@ using namespace ArduinoJson; TEST(JsonParser_Nested_Tests, ArrayNestedInObject) { StaticJsonBuffer<42> jsonBuffer; - char jsonString[] = "{\"key\":[1,2,3]}"; + char jsonString[] = " { \"ab\" : [ 1 , 2 ] , \"cd\" : [ 3 , 4 ] } "; JsonObject object = jsonBuffer.parseObject(jsonString); + JsonArray array1 = object["ab"]; + JsonArray array2 = object["cd"]; + ASSERT_TRUE(object.success()); - JsonArray array = object["key"]; + ASSERT_TRUE(array1.success()); + ASSERT_TRUE(array2.success()); + + ASSERT_EQ(2, array1.size()); + ASSERT_EQ(2, array2.size()); + + EXPECT_EQ(1, static_cast(array1[0])); + EXPECT_EQ(2, static_cast(array1[1])); + + EXPECT_EQ(3, static_cast(array2[0])); + EXPECT_EQ(4, static_cast(array2[1])); +} + +TEST(JsonParser_Nested_Tests, ObjectNestedInArray) +{ + StaticJsonBuffer<42> jsonBuffer; + char jsonString[] = " [ { \"a\" : 1 , \"b\" : 2 } , { \"c\" : 3 , \"d\" : 4 } ] "; + + JsonArray array = jsonBuffer.parseArray(jsonString); + JsonObject object1 = array[0]; + JsonObject object2 = array[1]; + ASSERT_TRUE(array.success()); - ASSERT_EQ(3, array.size()); + ASSERT_TRUE(object1.success()); + ASSERT_TRUE(object2.success()); - EXPECT_EQ(1, static_cast(array[0])); - EXPECT_EQ(2, static_cast(array[1])); - EXPECT_EQ(3, static_cast(array[2])); -} + ASSERT_EQ(2, object1.size()); + ASSERT_EQ(2, object2.size()); + + EXPECT_EQ(1, static_cast(object1["a"])); + EXPECT_EQ(2, static_cast(object1["b"])); + EXPECT_EQ(3, static_cast(object2["c"])); + EXPECT_EQ(4, static_cast(object2["d"])); +} \ No newline at end of file