Added a test when token count is too small

This commit is contained in:
Benoit Blanchon
2014-07-14 14:35:51 +02:00
parent dde5a2510b
commit 0b087b7bdb

View File

@ -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);