| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- // Copyright Benoit Blanchon 2014-2016
- // MIT License
- //
- // Arduino JSON library
- // https://github.com/bblanchon/ArduinoJson
- // If you like this project, please add a star!
- #include <ArduinoJson.h>
- #include <gtest/gtest.h>
- #include <stdint.h>
- class JsonArray_Subscript_Tests : public ::testing::Test {
- protected:
- JsonArray_Subscript_Tests() : _array(_jsonBuffer.createArray()) {
- _array.add(0);
- }
- DynamicJsonBuffer _jsonBuffer;
- JsonArray& _array;
- };
- #define TEST_(name) TEST_F(JsonArray_Subscript_Tests, name)
- TEST_(SizeIsUnchanged) {
- _array[0] = "hello";
- EXPECT_EQ(1U, _array.size());
- }
- TEST_(StoreInteger) {
- _array[0] = 123;
- EXPECT_EQ(123, _array[0].as<int>());
- EXPECT_TRUE(_array[0].is<int>());
- EXPECT_FALSE(_array[0].is<double>());
- }
- #if ARDUINOJSON_USE_LONG_LONG || ARDUINOJSON_USE_INT64
- TEST_(StoreLongLong) {
- _array[0] = 9223372036854775807;
- EXPECT_EQ(9223372036854775807, _array[0].as<long long>());
- EXPECT_TRUE(_array[0].is<int>());
- EXPECT_FALSE(_array[0].is<double>());
- }
- #endif
- TEST_(StoreDouble) {
- _array[0] = 123.45;
- EXPECT_EQ(123.45, _array[0].as<double>());
- EXPECT_TRUE(_array[0].is<double>());
- EXPECT_FALSE(_array[0].is<int>());
- }
- TEST_(StoreBoolean) {
- _array[0] = true;
- EXPECT_EQ(true, _array[0].as<bool>());
- EXPECT_TRUE(_array[0].is<bool>());
- EXPECT_FALSE(_array[0].is<int>());
- }
- TEST_(StoreString) {
- _array[0] = "hello";
- EXPECT_STREQ("hello", _array[0].as<const char*>());
- EXPECT_TRUE(_array[0].is<const char*>());
- EXPECT_FALSE(_array[0].is<int>());
- }
- TEST_(StoreNestedArray) {
- JsonArray& arr = _jsonBuffer.createArray();
- _array[0] = arr;
- EXPECT_EQ(&arr, &_array[0].as<JsonArray&>());
- EXPECT_TRUE(_array[0].is<JsonArray&>());
- EXPECT_FALSE(_array[0].is<int>());
- }
- TEST_(StoreNestedObject) {
- JsonObject& obj = _jsonBuffer.createObject();
- _array[0] = obj;
- EXPECT_EQ(&obj, &_array[0].as<JsonObject&>());
- EXPECT_TRUE(_array[0].is<JsonObject&>());
- EXPECT_FALSE(_array[0].is<int>());
- }
- TEST_(StoreArraySubscript) {
- JsonArray& arr = _jsonBuffer.createArray();
- arr.add("hello");
- _array[0] = arr[0];
- EXPECT_STREQ("hello", _array[0]);
- }
- TEST_(StoreObjectSubscript) {
- JsonObject& obj = _jsonBuffer.createObject();
- obj["x"] = "hello";
- _array[0] = obj["x"];
- EXPECT_STREQ("hello", _array[0]);
- }
|