source: rtos_arduino/trunk/arduino_lib/libraries/ArduinoJson/test/JsonVariant_As_Tests.cpp@ 209

Last change on this file since 209 was 209, checked in by ertl-honda, 8 years ago

BlueMix用のフィアルを追加

File size: 4.6 KB
Line 
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
13static const char* null = 0;
14
15TEST(JsonVariant_As_Tests, DoubleAsBool) {
16 JsonVariant variant = 4.2;
17 ASSERT_TRUE(variant.as<bool>());
18}
19
20TEST(JsonVariant_As_Tests, DoubleAsCstr) {
21 JsonVariant variant = 4.2;
22 ASSERT_FALSE(variant.as<const char*>());
23}
24
25TEST(JsonVariant_As_Tests, DoubleAsString) {
26 JsonVariant variant = 4.2;
27 ASSERT_EQ(String("4.20"), variant.as<String>());
28}
29
30TEST(JsonVariant_As_Tests, DoubleAsLong) {
31 JsonVariant variant = 4.2;
32 ASSERT_EQ(4L, variant.as<long>());
33}
34
35TEST(JsonVariant_As_Tests, DoubleZeroAsBool) {
36 JsonVariant variant = 0.0;
37 ASSERT_FALSE(variant.as<bool>());
38}
39
40TEST(JsonVariant_As_Tests, DoubleZeroAsLong) {
41 JsonVariant variant = 0.0;
42 ASSERT_EQ(0L, variant.as<long>());
43}
44
45TEST(JsonVariant_As_Tests, FalseAsBool) {
46 JsonVariant variant = false;
47 ASSERT_FALSE(variant.as<bool>());
48}
49
50TEST(JsonVariant_As_Tests, FalseAsDouble) {
51 JsonVariant variant = false;
52 ASSERT_EQ(0.0, variant.as<double>());
53}
54
55TEST(JsonVariant_As_Tests, FalseAsLong) {
56 JsonVariant variant = false;
57 ASSERT_EQ(0L, variant.as<long>());
58}
59
60TEST(JsonVariant_As_Tests, FalseAsString) {
61 JsonVariant variant = false;
62 ASSERT_EQ(String("false"), variant.as<String>());
63}
64
65TEST(JsonVariant_As_Tests, TrueAsBool) {
66 JsonVariant variant = true;
67 ASSERT_TRUE(variant.as<bool>());
68}
69
70TEST(JsonVariant_As_Tests, TrueAsDouble) {
71 JsonVariant variant = true;
72 ASSERT_EQ(1.0, variant.as<double>());
73}
74
75TEST(JsonVariant_As_Tests, TrueAsLong) {
76 JsonVariant variant = true;
77 ASSERT_EQ(1L, variant.as<long>());
78}
79
80TEST(JsonVariant_As_Tests, TrueAsString) {
81 JsonVariant variant = true;
82 ASSERT_EQ(String("true"), variant.as<String>());
83}
84
85TEST(JsonVariant_As_Tests, LongAsBool) {
86 JsonVariant variant = 42L;
87 ASSERT_TRUE(variant.as<bool>());
88}
89
90TEST(JsonVariant_As_Tests, LongZeroAsBool) {
91 JsonVariant variant = 0L;
92 ASSERT_FALSE(variant.as<bool>());
93}
94
95TEST(JsonVariant_As_Tests, LongAsDouble) {
96 JsonVariant variant = 42L;
97 ASSERT_EQ(42.0, variant.as<double>());
98}
99
100TEST(JsonVariant_As_Tests, LongAsString) {
101 JsonVariant variant = 42L;
102 ASSERT_EQ(String("42"), variant.as<String>());
103}
104
105TEST(JsonVariant_As_Tests, LongZeroAsDouble) {
106 JsonVariant variant = 0L;
107 ASSERT_EQ(0.0, variant.as<double>());
108}
109
110TEST(JsonVariant_As_Tests, NullAsBool) {
111 JsonVariant variant = null;
112 ASSERT_FALSE(variant.as<bool>());
113}
114
115TEST(JsonVariant_As_Tests, NullAsDouble) {
116 JsonVariant variant = null;
117 ASSERT_EQ(0.0, variant.as<double>());
118}
119
120TEST(JsonVariant_As_Tests, NullAsLong) {
121 JsonVariant variant = null;
122 ASSERT_EQ(0L, variant.as<long>());
123}
124
125TEST(JsonVariant_As_Tests, NullAsString) {
126 JsonVariant variant = null;
127 ASSERT_EQ(String("null"), variant.as<String>());
128}
129
130TEST(JsonVariant_As_Tests, NumberStringAsBool) {
131 JsonVariant variant = "42";
132 ASSERT_TRUE(variant.as<bool>());
133}
134
135TEST(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
141TEST(JsonVariant_As_Tests, NumberStringAsInt64Negative) {
142 JsonVariant variant = "-9223372036854775808";
143 ASSERT_EQ(-9223372036854775807 - 1, variant.as<long long>());
144}
145
146TEST(JsonVariant_As_Tests, NumberStringAsInt64Positive) {
147 JsonVariant variant = "9223372036854775807";
148 ASSERT_EQ(9223372036854775807, variant.as<long long>());
149}
150#endif
151
152TEST(JsonVariant_As_Tests, RandomStringAsBool) {
153 JsonVariant variant = "hello";
154 ASSERT_FALSE(variant.as<bool>());
155}
156
157TEST(JsonVariant_As_Tests, RandomStringAsLong) {
158 JsonVariant variant = "hello";
159 ASSERT_EQ(0L, variant.as<long>());
160}
161
162TEST(JsonVariant_As_Tests, RandomStringAsString) {
163 JsonVariant variant = "hello";
164 ASSERT_EQ(String("hello"), variant.as<String>());
165}
166
167TEST(JsonVariant_As_Tests, TrueStringAsBool) {
168 JsonVariant variant = "true";
169 ASSERT_TRUE(variant.as<bool>());
170}
171
172TEST(JsonVariant_As_Tests, TrueStringAsLong) {
173 JsonVariant variant = "true";
174 ASSERT_EQ(1L, variant.as<long>());
175}
176
177TEST(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
187TEST(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}
Note: See TracBrowser for help on using the repository browser.