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-21 23:42:26 +02:00
|
|
|
TEST_F(JsonParser_Object_Test, OneStringNoSpace)
|
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
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
{
|
|
|
|
whenInputIs("{\"key\":\"value\" }");
|
|
|
|
parseMustSucceed();
|
|
|
|
sizeMustBe(1);
|
|
|
|
keyMustHaveValue("key", "value");
|
2014-10-21 21:11:30 +02:00
|
|
|
}
|