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

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

BlueMix用のフィアルを追加

File size: 1.5 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 <gtest/gtest.h>
9#include <ArduinoJson.h>
10
11TEST(StaticJsonBuffer_CreateObject_Tests, GrowsWithObject) {
12 StaticJsonBuffer<JSON_OBJECT_SIZE(3)> buffer;
13
14 JsonObject &obj = buffer.createObject();
15 ASSERT_EQ(JSON_OBJECT_SIZE(0), buffer.size());
16
17 obj["hello"];
18 ASSERT_EQ(JSON_OBJECT_SIZE(0), buffer.size());
19
20 obj["hello"] = 1;
21 ASSERT_EQ(JSON_OBJECT_SIZE(1), buffer.size());
22
23 obj["world"] = 2;
24 ASSERT_EQ(JSON_OBJECT_SIZE(2), buffer.size());
25
26 obj["world"] = 3; // <- same key, should not grow
27 ASSERT_EQ(JSON_OBJECT_SIZE(2), buffer.size());
28}
29
30TEST(StaticJsonBuffer_CreateObject_Tests, SucceedWhenBigEnough) {
31 StaticJsonBuffer<JSON_OBJECT_SIZE(0)> buffer;
32
33 JsonObject &object = buffer.createObject();
34 ASSERT_TRUE(object.success());
35}
36
37TEST(StaticJsonBuffer_CreateObject_Tests, FailsWhenTooSmall) {
38 StaticJsonBuffer<JSON_OBJECT_SIZE(0) - 1> buffer;
39
40 JsonObject &object = buffer.createObject();
41 ASSERT_FALSE(object.success());
42}
43
44TEST(StaticJsonBuffer_CreateObject_Tests, ObjectDoesntGrowWhenFull) {
45 StaticJsonBuffer<JSON_OBJECT_SIZE(1)> buffer;
46
47 JsonObject &obj = buffer.createObject();
48 obj["hello"] = 1;
49 obj["world"] = 2;
50
51 ASSERT_EQ(JSON_OBJECT_SIZE(1), buffer.size());
52 ASSERT_EQ(1, obj.size());
53
54 char json[64];
55 obj.printTo(json, sizeof(json));
56 ASSERT_STREQ("{\"hello\":1}", json);
57}
Note: See TracBrowser for help on using the repository browser.