forked from bblanchon/ArduinoJson
Added a test when token count is too small
This commit is contained in:
@ -15,10 +15,11 @@ namespace ArduinoJsonParserTests
|
|||||||
{
|
{
|
||||||
TEST_CLASS(JsonHashTableTests)
|
TEST_CLASS(JsonHashTableTests)
|
||||||
{
|
{
|
||||||
JsonParser<32> parser;
|
|
||||||
JsonHashTable hashTable;
|
JsonHashTable hashTable;
|
||||||
JsonArray nestedArray;
|
JsonArray nestedArray;
|
||||||
char json[256];
|
char json[256];
|
||||||
|
jsmntok_t tokens[32];
|
||||||
|
JsonParserBase parser = JsonParserBase(tokens, 32);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -34,9 +35,22 @@ namespace ArduinoJsonParserTests
|
|||||||
parseMustSucceed();
|
parseMustSucceed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_METHOD(NotEnoughTokens)
|
||||||
|
{
|
||||||
|
setTokenCountTo(2);
|
||||||
|
|
||||||
|
whenInputIs("{\"key\":0}");
|
||||||
|
|
||||||
|
parseMustFail();
|
||||||
|
itemMustNotExists("key");
|
||||||
|
}
|
||||||
|
|
||||||
TEST_METHOD(TwoIntegers)
|
TEST_METHOD(TwoIntegers)
|
||||||
{
|
{
|
||||||
|
setTokenCountTo(5);
|
||||||
|
|
||||||
whenInputIs("{\"key1\":1,\"key2\":2}");
|
whenInputIs("{\"key1\":1,\"key2\":2}");
|
||||||
|
|
||||||
parseMustSucceed();
|
parseMustSucceed();
|
||||||
itemMustBe("key1", 1L);
|
itemMustBe("key1", 1L);
|
||||||
itemMustBe("key2", 2L);
|
itemMustBe("key2", 2L);
|
||||||
@ -45,7 +59,10 @@ namespace ArduinoJsonParserTests
|
|||||||
|
|
||||||
TEST_METHOD(TwoBooleans)
|
TEST_METHOD(TwoBooleans)
|
||||||
{
|
{
|
||||||
|
setTokenCountTo(5);
|
||||||
|
|
||||||
whenInputIs("{\"key1\":true,\"key2\":false}");
|
whenInputIs("{\"key1\":true,\"key2\":false}");
|
||||||
|
|
||||||
parseMustSucceed();
|
parseMustSucceed();
|
||||||
itemMustBe("key1", true);
|
itemMustBe("key1", true);
|
||||||
itemMustBe("key2", false);
|
itemMustBe("key2", false);
|
||||||
@ -54,7 +71,10 @@ namespace ArduinoJsonParserTests
|
|||||||
|
|
||||||
TEST_METHOD(TwoStrings)
|
TEST_METHOD(TwoStrings)
|
||||||
{
|
{
|
||||||
|
setTokenCountTo(5);
|
||||||
|
|
||||||
whenInputIs("{\"key1\":\"hello\",\"key2\":\"world\"}");
|
whenInputIs("{\"key1\":\"hello\",\"key2\":\"world\"}");
|
||||||
|
|
||||||
parseMustSucceed();
|
parseMustSucceed();
|
||||||
itemMustBe("key1", "hello");
|
itemMustBe("key1", "hello");
|
||||||
itemMustBe("key2", "world");
|
itemMustBe("key2", "world");
|
||||||
@ -63,6 +83,8 @@ namespace ArduinoJsonParserTests
|
|||||||
|
|
||||||
TEST_METHOD(TwoNestedArrays)
|
TEST_METHOD(TwoNestedArrays)
|
||||||
{
|
{
|
||||||
|
setTokenCountTo(9);
|
||||||
|
|
||||||
whenInputIs("{\"key1\":[1,2],\"key2\":[3,4]}");
|
whenInputIs("{\"key1\":[1,2],\"key2\":[3,4]}");
|
||||||
parseMustSucceed();
|
parseMustSucceed();
|
||||||
|
|
||||||
@ -83,6 +105,11 @@ namespace ArduinoJsonParserTests
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
void setTokenCountTo(int n)
|
||||||
|
{
|
||||||
|
parser = JsonParserBase(tokens, n);
|
||||||
|
}
|
||||||
|
|
||||||
void whenInputIs(const char* input)
|
void whenInputIs(const char* input)
|
||||||
{
|
{
|
||||||
strcpy(json, input);
|
strcpy(json, input);
|
||||||
|
Reference in New Issue
Block a user