1 | // Copyright Benoit Blanchon 2014-2016
|
---|
2 | // MIT License
|
---|
3 | //
|
---|
4 | // Arduino JSON library
|
---|
5 | // https://github.com/bblanchon/ArduinoJson
|
---|
6 | // If you like this project, please add a star!
|
---|
7 |
|
---|
8 | #include <gtest/gtest.h>
|
---|
9 | #include <ArduinoJson.h>
|
---|
10 |
|
---|
11 | TEST(JsonParser_Nested_Tests, ArrayNestedInObject) {
|
---|
12 | DynamicJsonBuffer jsonBuffer;
|
---|
13 | char jsonString[] = " { \"ab\" : [ 1 , 2 ] , \"cd\" : [ 3 , 4 ] } ";
|
---|
14 |
|
---|
15 | JsonObject &object = jsonBuffer.parseObject(jsonString);
|
---|
16 | JsonArray &array1 = object["ab"];
|
---|
17 | const JsonArray &array2 = object["cd"];
|
---|
18 | JsonArray &array3 = object["ef"];
|
---|
19 |
|
---|
20 | ASSERT_TRUE(object.success());
|
---|
21 |
|
---|
22 | ASSERT_TRUE(array1.success());
|
---|
23 | ASSERT_TRUE(array2.success());
|
---|
24 | ASSERT_FALSE(array3.success());
|
---|
25 |
|
---|
26 | ASSERT_EQ(2, array1.size());
|
---|
27 | ASSERT_EQ(2, array2.size());
|
---|
28 | ASSERT_EQ(0, array3.size());
|
---|
29 |
|
---|
30 | EXPECT_EQ(1, array1[0].as<int>());
|
---|
31 | EXPECT_EQ(2, array1[1].as<int>());
|
---|
32 |
|
---|
33 | EXPECT_EQ(3, array2[0].as<int>());
|
---|
34 | EXPECT_EQ(4, array2[1].as<int>());
|
---|
35 |
|
---|
36 | EXPECT_EQ(0, array3[0].as<int>());
|
---|
37 | }
|
---|
38 |
|
---|
39 | TEST(JsonParser_Nested_Tests, ObjectNestedInArray) {
|
---|
40 | DynamicJsonBuffer jsonBuffer;
|
---|
41 | char jsonString[] =
|
---|
42 | " [ { \"a\" : 1 , \"b\" : 2 } , { \"c\" : 3 , \"d\" : 4 } ] ";
|
---|
43 |
|
---|
44 | JsonArray &array = jsonBuffer.parseArray(jsonString);
|
---|
45 | JsonObject &object1 = array[0];
|
---|
46 | const JsonObject &object2 = array[1];
|
---|
47 | JsonObject &object3 = array[2];
|
---|
48 |
|
---|
49 | ASSERT_TRUE(array.success());
|
---|
50 |
|
---|
51 | ASSERT_TRUE(object1.success());
|
---|
52 | ASSERT_TRUE(object2.success());
|
---|
53 | ASSERT_FALSE(object3.success());
|
---|
54 |
|
---|
55 | ASSERT_EQ(2, object1.size());
|
---|
56 | ASSERT_EQ(2, object2.size());
|
---|
57 | ASSERT_EQ(0, object3.size());
|
---|
58 |
|
---|
59 | EXPECT_EQ(1, object1["a"].as<int>());
|
---|
60 | EXPECT_EQ(2, object1["b"].as<int>());
|
---|
61 | EXPECT_EQ(3, object2["c"].as<int>());
|
---|
62 | EXPECT_EQ(4, object2["d"].as<int>());
|
---|
63 | EXPECT_EQ(0, object3["e"].as<int>());
|
---|
64 | }
|
---|