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 <ArduinoJson.h>
|
---|
9 |
|
---|
10 | #include <gtest/gtest.h>
|
---|
11 | #include <stdint.h>
|
---|
12 |
|
---|
13 | static const char* null = 0;
|
---|
14 |
|
---|
15 | TEST(JsonVariant_As_Tests, DoubleAsBool) {
|
---|
16 | JsonVariant variant = 4.2;
|
---|
17 | ASSERT_TRUE(variant.as<bool>());
|
---|
18 | }
|
---|
19 |
|
---|
20 | TEST(JsonVariant_As_Tests, DoubleAsCstr) {
|
---|
21 | JsonVariant variant = 4.2;
|
---|
22 | ASSERT_FALSE(variant.as<const char*>());
|
---|
23 | }
|
---|
24 |
|
---|
25 | TEST(JsonVariant_As_Tests, DoubleAsString) {
|
---|
26 | JsonVariant variant = 4.2;
|
---|
27 | ASSERT_EQ(String("4.20"), variant.as<String>());
|
---|
28 | }
|
---|
29 |
|
---|
30 | TEST(JsonVariant_As_Tests, DoubleAsLong) {
|
---|
31 | JsonVariant variant = 4.2;
|
---|
32 | ASSERT_EQ(4L, variant.as<long>());
|
---|
33 | }
|
---|
34 |
|
---|
35 | TEST(JsonVariant_As_Tests, DoubleZeroAsBool) {
|
---|
36 | JsonVariant variant = 0.0;
|
---|
37 | ASSERT_FALSE(variant.as<bool>());
|
---|
38 | }
|
---|
39 |
|
---|
40 | TEST(JsonVariant_As_Tests, DoubleZeroAsLong) {
|
---|
41 | JsonVariant variant = 0.0;
|
---|
42 | ASSERT_EQ(0L, variant.as<long>());
|
---|
43 | }
|
---|
44 |
|
---|
45 | TEST(JsonVariant_As_Tests, FalseAsBool) {
|
---|
46 | JsonVariant variant = false;
|
---|
47 | ASSERT_FALSE(variant.as<bool>());
|
---|
48 | }
|
---|
49 |
|
---|
50 | TEST(JsonVariant_As_Tests, FalseAsDouble) {
|
---|
51 | JsonVariant variant = false;
|
---|
52 | ASSERT_EQ(0.0, variant.as<double>());
|
---|
53 | }
|
---|
54 |
|
---|
55 | TEST(JsonVariant_As_Tests, FalseAsLong) {
|
---|
56 | JsonVariant variant = false;
|
---|
57 | ASSERT_EQ(0L, variant.as<long>());
|
---|
58 | }
|
---|
59 |
|
---|
60 | TEST(JsonVariant_As_Tests, FalseAsString) {
|
---|
61 | JsonVariant variant = false;
|
---|
62 | ASSERT_EQ(String("false"), variant.as<String>());
|
---|
63 | }
|
---|
64 |
|
---|
65 | TEST(JsonVariant_As_Tests, TrueAsBool) {
|
---|
66 | JsonVariant variant = true;
|
---|
67 | ASSERT_TRUE(variant.as<bool>());
|
---|
68 | }
|
---|
69 |
|
---|
70 | TEST(JsonVariant_As_Tests, TrueAsDouble) {
|
---|
71 | JsonVariant variant = true;
|
---|
72 | ASSERT_EQ(1.0, variant.as<double>());
|
---|
73 | }
|
---|
74 |
|
---|
75 | TEST(JsonVariant_As_Tests, TrueAsLong) {
|
---|
76 | JsonVariant variant = true;
|
---|
77 | ASSERT_EQ(1L, variant.as<long>());
|
---|
78 | }
|
---|
79 |
|
---|
80 | TEST(JsonVariant_As_Tests, TrueAsString) {
|
---|
81 | JsonVariant variant = true;
|
---|
82 | ASSERT_EQ(String("true"), variant.as<String>());
|
---|
83 | }
|
---|
84 |
|
---|
85 | TEST(JsonVariant_As_Tests, LongAsBool) {
|
---|
86 | JsonVariant variant = 42L;
|
---|
87 | ASSERT_TRUE(variant.as<bool>());
|
---|
88 | }
|
---|
89 |
|
---|
90 | TEST(JsonVariant_As_Tests, LongZeroAsBool) {
|
---|
91 | JsonVariant variant = 0L;
|
---|
92 | ASSERT_FALSE(variant.as<bool>());
|
---|
93 | }
|
---|
94 |
|
---|
95 | TEST(JsonVariant_As_Tests, LongAsDouble) {
|
---|
96 | JsonVariant variant = 42L;
|
---|
97 | ASSERT_EQ(42.0, variant.as<double>());
|
---|
98 | }
|
---|
99 |
|
---|
100 | TEST(JsonVariant_As_Tests, LongAsString) {
|
---|
101 | JsonVariant variant = 42L;
|
---|
102 | ASSERT_EQ(String("42"), variant.as<String>());
|
---|
103 | }
|
---|
104 |
|
---|
105 | TEST(JsonVariant_As_Tests, LongZeroAsDouble) {
|
---|
106 | JsonVariant variant = 0L;
|
---|
107 | ASSERT_EQ(0.0, variant.as<double>());
|
---|
108 | }
|
---|
109 |
|
---|
110 | TEST(JsonVariant_As_Tests, NullAsBool) {
|
---|
111 | JsonVariant variant = null;
|
---|
112 | ASSERT_FALSE(variant.as<bool>());
|
---|
113 | }
|
---|
114 |
|
---|
115 | TEST(JsonVariant_As_Tests, NullAsDouble) {
|
---|
116 | JsonVariant variant = null;
|
---|
117 | ASSERT_EQ(0.0, variant.as<double>());
|
---|
118 | }
|
---|
119 |
|
---|
120 | TEST(JsonVariant_As_Tests, NullAsLong) {
|
---|
121 | JsonVariant variant = null;
|
---|
122 | ASSERT_EQ(0L, variant.as<long>());
|
---|
123 | }
|
---|
124 |
|
---|
125 | TEST(JsonVariant_As_Tests, NullAsString) {
|
---|
126 | JsonVariant variant = null;
|
---|
127 | ASSERT_EQ(String("null"), variant.as<String>());
|
---|
128 | }
|
---|
129 |
|
---|
130 | TEST(JsonVariant_As_Tests, NumberStringAsBool) {
|
---|
131 | JsonVariant variant = "42";
|
---|
132 | ASSERT_TRUE(variant.as<bool>());
|
---|
133 | }
|
---|
134 |
|
---|
135 | TEST(JsonVariant_As_Tests, NumberStringAsLong) {
|
---|
136 | JsonVariant variant = "42";
|
---|
137 | ASSERT_EQ(42L, variant.as<long>());
|
---|
138 | }
|
---|
139 |
|
---|
140 | #if ARDUINOJSON_USE_LONG_LONG || ARDUINOJSON_USE_INT64
|
---|
141 | TEST(JsonVariant_As_Tests, NumberStringAsInt64Negative) {
|
---|
142 | JsonVariant variant = "-9223372036854775808";
|
---|
143 | ASSERT_EQ(-9223372036854775807 - 1, variant.as<long long>());
|
---|
144 | }
|
---|
145 |
|
---|
146 | TEST(JsonVariant_As_Tests, NumberStringAsInt64Positive) {
|
---|
147 | JsonVariant variant = "9223372036854775807";
|
---|
148 | ASSERT_EQ(9223372036854775807, variant.as<long long>());
|
---|
149 | }
|
---|
150 | #endif
|
---|
151 |
|
---|
152 | TEST(JsonVariant_As_Tests, RandomStringAsBool) {
|
---|
153 | JsonVariant variant = "hello";
|
---|
154 | ASSERT_FALSE(variant.as<bool>());
|
---|
155 | }
|
---|
156 |
|
---|
157 | TEST(JsonVariant_As_Tests, RandomStringAsLong) {
|
---|
158 | JsonVariant variant = "hello";
|
---|
159 | ASSERT_EQ(0L, variant.as<long>());
|
---|
160 | }
|
---|
161 |
|
---|
162 | TEST(JsonVariant_As_Tests, RandomStringAsString) {
|
---|
163 | JsonVariant variant = "hello";
|
---|
164 | ASSERT_EQ(String("hello"), variant.as<String>());
|
---|
165 | }
|
---|
166 |
|
---|
167 | TEST(JsonVariant_As_Tests, TrueStringAsBool) {
|
---|
168 | JsonVariant variant = "true";
|
---|
169 | ASSERT_TRUE(variant.as<bool>());
|
---|
170 | }
|
---|
171 |
|
---|
172 | TEST(JsonVariant_As_Tests, TrueStringAsLong) {
|
---|
173 | JsonVariant variant = "true";
|
---|
174 | ASSERT_EQ(1L, variant.as<long>());
|
---|
175 | }
|
---|
176 |
|
---|
177 | TEST(JsonVariant_As_Tests, ObjectAsString) {
|
---|
178 | DynamicJsonBuffer buffer;
|
---|
179 |
|
---|
180 | JsonObject& obj = buffer.createObject();
|
---|
181 | obj["key"] = "value";
|
---|
182 |
|
---|
183 | JsonVariant variant = obj;
|
---|
184 | ASSERT_EQ(String("{\"key\":\"value\"}"), variant.as<String>());
|
---|
185 | }
|
---|
186 |
|
---|
187 | TEST(JsonVariant_As_Tests, ArrayAsString) {
|
---|
188 | DynamicJsonBuffer buffer;
|
---|
189 |
|
---|
190 | JsonArray& arr = buffer.createArray();
|
---|
191 | arr.add(4);
|
---|
192 | arr.add(2);
|
---|
193 |
|
---|
194 | JsonVariant variant = arr;
|
---|
195 | ASSERT_EQ(String("[4,2]"), variant.as<String>());
|
---|
196 | }
|
---|