mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added a test with too few tokens
This commit is contained in:
		| @@ -13,9 +13,10 @@ namespace ArduinoJsonParserTests | ||||
| { | ||||
| 	TEST_CLASS(JsonArrayTests) | ||||
| 	{ | ||||
| 		JsonParser<32> parser; | ||||
|         JsonArray array; | ||||
|         char json[256]; | ||||
|         jsmntok_t tokens[32]; | ||||
|         JsonParserBase parser = JsonParserBase(tokens, 32); | ||||
|  | ||||
| 	public: | ||||
| 		 | ||||
| @@ -25,13 +26,6 @@ namespace ArduinoJsonParserTests | ||||
|             parseMustFail();              | ||||
| 		} | ||||
|  | ||||
| 		TEST_METHOD(EmptyArray) | ||||
| 		{ | ||||
|             whenInputIs("[]"); | ||||
|             parseMustSucceed(); | ||||
|             lengthMustBe(0); | ||||
| 		} | ||||
|  | ||||
| 		TEST_METHOD(TooFewClosingBrackets) | ||||
| 		{ | ||||
|             whenInputIs("[[]"); | ||||
| @@ -44,47 +38,83 @@ namespace ArduinoJsonParserTests | ||||
|             parseMustFail(); | ||||
| 		} | ||||
| 		 | ||||
|         TEST_METHOD(EmptyArray) | ||||
|         { | ||||
|             whenInputIs("[]"); | ||||
|             parseMustSucceed(); | ||||
|             lengthMustBe(0); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(NotEnoughTokens) | ||||
|         { | ||||
|             setTokenCountTo(2); | ||||
|  | ||||
|             whenInputIs("[1,2]"); | ||||
|  | ||||
|             parseMustFail(); | ||||
|             itemMustNotExist(0); | ||||
|         } | ||||
|  | ||||
| 		TEST_METHOD(TwoIntegers) | ||||
| 		{ | ||||
|             setTokenCountTo(3); | ||||
|  | ||||
|             whenInputIs("[1,2]"); | ||||
|  | ||||
|             parseMustSucceed(); | ||||
|             lengthMustBe(2); | ||||
|             itemMustBe(0, 1L); | ||||
|             itemMustBe(1, 2L); | ||||
|             itemMustNotExist(2); | ||||
| 		} | ||||
|  | ||||
|         TEST_METHOD(TwoBooleans) | ||||
|         { | ||||
|             setTokenCountTo(3); | ||||
|  | ||||
|             whenInputIs("[true,false]"); | ||||
|  | ||||
|             parseMustSucceed(); | ||||
|             lengthMustBe(2); | ||||
|             itemMustBe(0, true); | ||||
|             itemMustBe(1, false); | ||||
|             itemMustNotExist(2); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(TwoStrings) | ||||
|         { | ||||
|             setTokenCountTo(3); | ||||
|  | ||||
|             whenInputIs("[\"hello\",\"world\"]"); | ||||
|  | ||||
|             parseMustSucceed(); | ||||
|             lengthMustBe(2); | ||||
|             itemMustBe(0, "hello"); | ||||
|             itemMustBe(1, "world"); | ||||
|             itemMustNotExist(2); | ||||
|         } | ||||
|  | ||||
| 		TEST_METHOD(TwoDimensionsArray) | ||||
| 		{ | ||||
|             setTokenCountTo(7); | ||||
|  | ||||
|             whenInputIs("[[1,2],[3,4]]"); | ||||
|  | ||||
|             parseMustSucceed(); | ||||
|             lengthMustBe(2); | ||||
|             itemMustBe(0, 0, 1L); | ||||
|             itemMustBe(0, 1, 2L); | ||||
|             itemMustBe(1, 0, 3L); | ||||
|             itemMustBe(1, 1, 4L); | ||||
|             itemMustNotExist(2); | ||||
| 		} | ||||
|  | ||||
|         TEST_METHOD(ThreeDimensionsArray) | ||||
|         { | ||||
|             setTokenCountTo(15); | ||||
|  | ||||
|             whenInputIs("[[[1,2],[3,4]],[[5,6],[7,8]]]"); | ||||
|  | ||||
|             parseMustSucceed(); | ||||
|             lengthMustBe(2); | ||||
|             itemMustBe(0, 0, 0, 1L); | ||||
| @@ -95,10 +125,16 @@ namespace ArduinoJsonParserTests | ||||
|             itemMustBe(1, 0, 1, 6L); | ||||
|             itemMustBe(1, 1, 0, 7L); | ||||
|             itemMustBe(1, 1, 1, 8L); | ||||
|             itemMustNotExist(2); | ||||
|         }         | ||||
| 		 | ||||
|     private: | ||||
|  | ||||
|         void setTokenCountTo(int n) | ||||
|         { | ||||
|             parser = JsonParserBase(tokens, n); | ||||
|         } | ||||
|  | ||||
|         void whenInputIs(const char* input) | ||||
|         { | ||||
|             strcpy(json, input); | ||||
| @@ -145,5 +181,15 @@ namespace ArduinoJsonParserTests | ||||
|         { | ||||
|             Assert::AreEqual(expected, array.getArray(index0).getArray(index1).getLong(index2)); | ||||
|         } | ||||
|  | ||||
|         void itemMustNotExist(int index) | ||||
|         { | ||||
|             Assert::IsFalse(array.getHashTable(index).success()); | ||||
|             Assert::IsFalse(array.getArray(index).success()); | ||||
|             Assert::IsFalse(array.getBool(index)); | ||||
|             Assert::AreEqual(0.0, array.getDouble(index)); | ||||
|             Assert::AreEqual(0L, array.getLong(index)); | ||||
|             Assert::IsNull(array.getString(index)); | ||||
|         } | ||||
| 	}; | ||||
| } | ||||
| @@ -42,7 +42,7 @@ namespace ArduinoJsonParserTests | ||||
|             whenInputIs("{\"key\":0}"); | ||||
|  | ||||
|             parseMustFail(); | ||||
|             itemMustNotExists("key"); | ||||
|             itemMustNotExist("key"); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(TwoIntegers) | ||||
| @@ -54,7 +54,7 @@ namespace ArduinoJsonParserTests | ||||
|             parseMustSucceed(); | ||||
|             itemMustBe("key1", 1L); | ||||
|             itemMustBe("key2", 2L); | ||||
|             itemMustNotExists("key3"); | ||||
|             itemMustNotExist("key3"); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(TwoBooleans) | ||||
| @@ -66,7 +66,7 @@ namespace ArduinoJsonParserTests | ||||
|             parseMustSucceed(); | ||||
|             itemMustBe("key1", true); | ||||
|             itemMustBe("key2", false); | ||||
|             itemMustNotExists("key3"); | ||||
|             itemMustNotExist("key3"); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(TwoStrings) | ||||
| @@ -78,7 +78,7 @@ namespace ArduinoJsonParserTests | ||||
|             parseMustSucceed(); | ||||
|             itemMustBe("key1", "hello"); | ||||
|             itemMustBe("key2", "world"); | ||||
|             itemMustNotExists("key3"); | ||||
|             itemMustNotExist("key3"); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(TwoNestedArrays) | ||||
| @@ -100,7 +100,7 @@ namespace ArduinoJsonParserTests | ||||
|             arrayItemMustBe(1, 4L); | ||||
|             arrayItemMustBe(2, 0L); | ||||
|  | ||||
|             itemMustNotExists("key3"); | ||||
|             itemMustNotExist("key3"); | ||||
|         } | ||||
|  | ||||
|     private: | ||||
| @@ -141,7 +141,7 @@ namespace ArduinoJsonParserTests | ||||
|             Assert::AreEqual(expected, hashTable.getString(key)); | ||||
|         } | ||||
|  | ||||
|         void itemMustNotExists(const char* key) | ||||
|         void itemMustNotExist(const char* key) | ||||
|         { | ||||
|             Assert::IsFalse(hashTable.containsKey(key)); | ||||
|             Assert::IsFalse(hashTable.getHashTable(key).success()); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user