| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- // Copyright Benoit Blanchon 2014-2017
- // MIT License
- //
- // Arduino JSON library
- // https://bblanchon.github.io/ArduinoJson/
- // If you like this project, please add a star!
- #include <ArduinoJson.h>
- #include <gtest/gtest.h>
- #if defined(__clang__)
- #define CONFLICTS_WITH_BUILTIN_OPERATOR
- #endif
- TEST(UnsignedCharArray, ParseArray) {
- unsigned char json[] = "[42]";
- StaticJsonBuffer<JSON_ARRAY_SIZE(1)> jsonBuffer;
- JsonArray& arr = jsonBuffer.parseArray(json);
- EXPECT_TRUE(arr.success());
- }
- TEST(UnsignedCharArray, ParseObject) {
- unsigned char json[] = "{\"a\":42}";
- StaticJsonBuffer<JSON_OBJECT_SIZE(1)> jsonBuffer;
- JsonObject& obj = jsonBuffer.parseObject(json);
- EXPECT_TRUE(obj.success());
- }
- TEST(UnsignedCharArray, JsonVariant_Constructor) {
- unsigned char value[] = "42";
- JsonVariant variant(value);
- EXPECT_EQ(42, variant.as<int>());
- }
- TEST(UnsignedCharArray, JsonVariant_Assign) {
- unsigned char value[] = "42";
- JsonVariant variant(666);
- variant = value;
- EXPECT_EQ(42, variant.as<int>());
- }
- #ifndef CONFLICTS_WITH_BUILTIN_OPERATOR
- TEST(UnsignedCharArray, JsonVariant_Subscript) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonVariant variant = jsonBuffer.parseObject("{\"hello\":\"world\"}");
- EXPECT_STREQ("world", variant[key]);
- }
- #endif
- #ifndef CONFLICTS_WITH_BUILTIN_OPERATOR
- TEST(UnsignedCharArray, JsonVariant_Subscript_Const) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- const JsonVariant variant = jsonBuffer.parseObject("{\"hello\":\"world\"}");
- EXPECT_STREQ("world", variant[key]);
- }
- #endif
- TEST(UnsignedCharArray, JsonVariant_Equals) {
- unsigned char comparand[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- const JsonVariant variant = "hello";
- EXPECT_TRUE(comparand == variant);
- EXPECT_TRUE(variant == comparand);
- EXPECT_FALSE(comparand != variant);
- EXPECT_FALSE(variant != comparand);
- }
- TEST(UnsignedCharArray, JsonVariant_Differs) {
- unsigned char comparand[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- const JsonVariant variant = "world";
- EXPECT_TRUE(comparand != variant);
- EXPECT_TRUE(variant != comparand);
- EXPECT_FALSE(comparand == variant);
- EXPECT_FALSE(variant == comparand);
- }
- #ifndef CONFLICTS_WITH_BUILTIN_OPERATOR
- TEST(UnsignedCharArray, JsonObject_Subscript) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj[key] = "world";
- EXPECT_STREQ("world", obj["hello"]);
- }
- #endif
- TEST(UnsignedCharArray, JsonObject_Subscript_Assign) { // issue #416
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj["hello"] = value;
- EXPECT_STREQ("world", obj["hello"]);
- }
- TEST(UnsignedCharArray, JsonObject_Subscript_Set) {
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj["hello"].set(value);
- EXPECT_STREQ("world", obj["hello"]);
- }
- #ifndef CONFLICTS_WITH_BUILTIN_OPERATOR
- TEST(UnsignedCharArray, JsonObject_Subscript_Const) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- const JsonObject& obj = jsonBuffer.parseObject("{\"hello\":\"world\"}");
- EXPECT_STREQ("world", obj[key]);
- }
- #endif
- TEST(UnsignedCharArray, JsonObject_Get) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.parseObject("{\"hello\":\"world\"}");
- EXPECT_STREQ("world", obj.get<char*>(key));
- }
- TEST(UnsignedCharArray, JsonObject_Set_Key) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj.set(key, "world");
- EXPECT_STREQ("world", obj["hello"]);
- }
- TEST(UnsignedCharArray, JsonObject_Set_Value) {
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj.set("hello", value);
- EXPECT_STREQ("world", obj["hello"]);
- }
- TEST(UnsignedCharArray, JsonObject_Set_Key_WithDecimals) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj.set(key, 3.14, 2);
- EXPECT_EQ(3.14, obj["hello"]);
- }
- TEST(UnsignedCharArray, JsonObject_Set_KeyAndValue) {
- unsigned char key[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj.set(key, key);
- EXPECT_STREQ("world", obj["world"]);
- }
- TEST(UnsignedCharArray, JsonObject_ContainsKey) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- const JsonObject& obj = jsonBuffer.parseObject("{\"hello\":\"world\"}");
- EXPECT_TRUE(obj.containsKey(key));
- }
- TEST(UnsignedCharArray, JsonObject_Remove) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.parseObject("{\"hello\":\"world\"}");
- obj.remove(key);
- EXPECT_EQ(0, obj.size());
- }
- TEST(UnsignedCharArray, JsonObject_Is) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.parseObject("{\"hello\":42}");
- EXPECT_TRUE(obj.is<int>(key));
- }
- TEST(UnsignedCharArray, JsonObject_CreateNestedArray) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj.createNestedArray(key);
- }
- TEST(UnsignedCharArray, JsonObject_CreateNestedObject) {
- unsigned char key[] = "hello";
- DynamicJsonBuffer jsonBuffer;
- JsonObject& obj = jsonBuffer.createObject();
- obj.createNestedObject(key);
- }
- TEST(UnsignedCharArray, JsonArray_Add) {
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonArray& arr = jsonBuffer.createArray();
- arr.add(value);
- EXPECT_STREQ("world", arr[0]);
- }
- TEST(UnsignedCharArray, JsonArray_Set) {
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonArray& arr = jsonBuffer.createArray();
- arr.add("hello");
- arr.set(0, value);
- EXPECT_STREQ("world", arr[0]);
- }
- TEST(UnsignedCharArray, JsonArraySubscript_Set) {
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonArray& arr = jsonBuffer.createArray();
- arr.add("hello");
- arr[0].set(value);
- EXPECT_STREQ("world", arr[0]);
- }
- TEST(UnsignedCharArray, JsonArraySubscript_Assign) {
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- JsonArray& arr = jsonBuffer.createArray();
- arr.add("hello");
- arr[0] = value;
- EXPECT_STREQ("world", arr[0]);
- }
- TEST(UnsignedCharArray, JsonBuffer_strdup) {
- unsigned char value[] = "world";
- DynamicJsonBuffer jsonBuffer;
- const char* dup = jsonBuffer.strdup(value);
- EXPECT_NE(static_cast<const void*>(value), static_cast<const void*>(dup));
- EXPECT_STREQ("world", dup);
- }
|