Files
ArduinoJson/test/JsonParser_Object_Tests.cpp

126 lines
2.4 KiB
C++
Raw Normal View History

2014-10-21 21:11:30 +02:00
#include <gtest/gtest.h>
#include <ArduinoJson/StaticJsonBuffer.hpp>
2014-10-21 23:37:17 +02:00
#include <ArduinoJson/JsonValue.hpp>
2014-10-21 21:11:30 +02:00
using namespace ArduinoJson;
class JsonParser_Object_Test : public testing::Test
{
protected:
2014-10-21 21:50:00 +02:00
void whenInputIs(const char* jsonString)
{
strcpy(_jsonString, jsonString);
_object = _jsonBuffer.parseObject(_jsonString);
}
2014-10-21 21:11:30 +02:00
2014-10-21 21:50:00 +02:00
void parseMustSucceed()
{
EXPECT_TRUE(_object.success());
}
void parseMustFail()
{
EXPECT_FALSE(_object.success());
}
void sizeMustBe(int expected)
{
EXPECT_EQ(expected, _object.size());
}
2014-10-21 23:37:17 +02:00
void keyMustHaveValue(const char* key, const char* expected)
{
EXPECT_STREQ(expected, static_cast<const char*>(_object[key]));
}
2014-10-21 21:50:00 +02:00
private:
StaticJsonBuffer<10> _jsonBuffer;
JsonObject _object;
char _jsonString[256];
2014-10-21 21:11:30 +02:00
};
TEST_F(JsonParser_Object_Test, EmptyObject)
{
2014-10-21 21:50:00 +02:00
whenInputIs("{}");
parseMustSucceed();
sizeMustBe(0);
}
2014-10-21 21:11:30 +02:00
2014-10-21 21:50:00 +02:00
TEST_F(JsonParser_Object_Test, MissingClosingBrace)
{
whenInputIs("{");
parseMustFail();
sizeMustBe(0);
2014-10-21 23:37:17 +02:00
}
2014-10-22 10:55:36 +02:00
TEST_F(JsonParser_Object_Test, MissingColonAndValue)
{
whenInputIs("{\"key\"}");
parseMustFail();
sizeMustBe(0);
}
TEST_F(JsonParser_Object_Test, MissingQuotesAndColonAndValue)
{
whenInputIs("{key}");
parseMustFail();
sizeMustBe(0);
}
2014-10-22 11:54:33 +02:00
TEST_F(JsonParser_Object_Test, OneString)
2014-10-21 23:37:17 +02:00
{
whenInputIs("{\"key\":\"value\"}");
parseMustSucceed();
sizeMustBe(1);
keyMustHaveValue("key", "value");
2014-10-21 23:42:26 +02:00
}
2014-10-22 11:54:33 +02:00
TEST_F(JsonParser_Object_Test, OneStringSingleQuotes)
{
whenInputIs("{'key':'value'}");
parseMustSucceed();
sizeMustBe(1);
keyMustHaveValue("key", "value");
}
2014-10-21 23:42:26 +02:00
TEST_F(JsonParser_Object_Test, OneStringSpaceBeforeKey)
{
whenInputIs("{ \"key\":\"value\"}");
parseMustSucceed();
sizeMustBe(1);
keyMustHaveValue("key", "value");
}
TEST_F(JsonParser_Object_Test, OneStringSpaceAfterKey)
{
whenInputIs("{\"key\" :\"value\"}");
parseMustSucceed();
sizeMustBe(1);
keyMustHaveValue("key", "value");
}
TEST_F(JsonParser_Object_Test, OneStringSpaceBeforeValue)
{
whenInputIs("{\"key\": \"value\"}");
parseMustSucceed();
sizeMustBe(1);
keyMustHaveValue("key", "value");
}
TEST_F(JsonParser_Object_Test, OneStringSpaceAfterValue)
{
2014-10-22 11:54:33 +02:00
whenInputIs("{\"key\":\"value\" }");
parseMustSucceed();
sizeMustBe(1);
keyMustHaveValue("key", "value");
}
TEST_F(JsonParser_Object_Test, TwoStrings)
{
whenInputIs("{\"key1\":\"value1\",\"key2\":\"value2\"}");
parseMustSucceed();
sizeMustBe(2);
keyMustHaveValue("key1", "value1");
keyMustHaveValue("key2", "value2");
2014-10-21 21:11:30 +02:00
}