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 | class JsonArray_Add_Tests : public ::testing::Test {
|
---|
12 | protected:
|
---|
13 | JsonArray_Add_Tests() : _array(_jsonBuffer.createArray()) {}
|
---|
14 |
|
---|
15 | DynamicJsonBuffer _jsonBuffer;
|
---|
16 | JsonArray& _array;
|
---|
17 | };
|
---|
18 |
|
---|
19 | #define TEST_(name) TEST_F(JsonArray_Add_Tests, name)
|
---|
20 |
|
---|
21 | TEST_(SizeIncreased_WhenValuesAreAdded) {
|
---|
22 | _array.add("hello");
|
---|
23 | EXPECT_EQ(1U, _array.size());
|
---|
24 | }
|
---|
25 |
|
---|
26 | TEST_(StoreInteger) {
|
---|
27 | _array.add(123);
|
---|
28 | EXPECT_EQ(123, _array[0].as<int>());
|
---|
29 | EXPECT_TRUE(_array[0].is<int>());
|
---|
30 | EXPECT_FALSE(_array[0].is<double>());
|
---|
31 | }
|
---|
32 |
|
---|
33 | TEST_(StoreDouble) {
|
---|
34 | _array.add(123.45);
|
---|
35 | EXPECT_EQ(123.45, _array[0].as<double>());
|
---|
36 | EXPECT_TRUE(_array[0].is<double>());
|
---|
37 | EXPECT_FALSE(_array[0].is<int>());
|
---|
38 | }
|
---|
39 |
|
---|
40 | TEST_(StoreBoolean) {
|
---|
41 | _array.add(true);
|
---|
42 | EXPECT_EQ(true, _array[0].as<bool>());
|
---|
43 | EXPECT_TRUE(_array[0].is<bool>());
|
---|
44 | EXPECT_FALSE(_array[0].is<int>());
|
---|
45 | }
|
---|
46 |
|
---|
47 | TEST_(StoreString) {
|
---|
48 | _array.add("hello");
|
---|
49 | EXPECT_STREQ("hello", _array[0].as<const char*>());
|
---|
50 | EXPECT_TRUE(_array[0].is<const char*>());
|
---|
51 | EXPECT_FALSE(_array[0].is<int>());
|
---|
52 | }
|
---|
53 |
|
---|
54 | TEST_(StoreNestedArray) {
|
---|
55 | JsonArray& arr = _jsonBuffer.createArray();
|
---|
56 |
|
---|
57 | _array.add(arr);
|
---|
58 |
|
---|
59 | EXPECT_EQ(&arr, &_array[0].as<JsonArray&>());
|
---|
60 | EXPECT_TRUE(_array[0].is<JsonArray&>());
|
---|
61 | EXPECT_FALSE(_array[0].is<int>());
|
---|
62 | }
|
---|
63 |
|
---|
64 | TEST_(StoreNestedObject) {
|
---|
65 | JsonObject& obj = _jsonBuffer.createObject();
|
---|
66 |
|
---|
67 | _array.add(obj);
|
---|
68 |
|
---|
69 | EXPECT_EQ(&obj, &_array[0].as<JsonObject&>());
|
---|
70 | EXPECT_TRUE(_array[0].is<JsonObject&>());
|
---|
71 | EXPECT_FALSE(_array[0].is<int>());
|
---|
72 | }
|
---|
73 |
|
---|
74 | TEST_(StoreArraySubscript) {
|
---|
75 | JsonArray& arr = _jsonBuffer.createArray();
|
---|
76 | arr.add("hello");
|
---|
77 |
|
---|
78 | _array.add(arr[0]);
|
---|
79 |
|
---|
80 | EXPECT_STREQ("hello", _array[0]);
|
---|
81 | }
|
---|
82 |
|
---|
83 | TEST_(StoreObjectSubscript) {
|
---|
84 | JsonObject& obj = _jsonBuffer.createObject();
|
---|
85 | obj["x"] = "hello";
|
---|
86 |
|
---|
87 | _array.add(obj["x"]);
|
---|
88 |
|
---|
89 | EXPECT_STREQ("hello", _array[0]);
|
---|
90 | }
|
---|