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) | 	TEST_CLASS(JsonArrayTests) | ||||||
| 	{ | 	{ | ||||||
| 		JsonParser<32> parser; |  | ||||||
|         JsonArray array; |         JsonArray array; | ||||||
|         char json[256]; |         char json[256]; | ||||||
|  |         jsmntok_t tokens[32]; | ||||||
|  |         JsonParserBase parser = JsonParserBase(tokens, 32); | ||||||
|  |  | ||||||
| 	public: | 	public: | ||||||
| 		 | 		 | ||||||
| @@ -25,13 +26,6 @@ namespace ArduinoJsonParserTests | |||||||
|             parseMustFail();              |             parseMustFail();              | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		TEST_METHOD(EmptyArray) |  | ||||||
| 		{ |  | ||||||
|             whenInputIs("[]"); |  | ||||||
|             parseMustSucceed(); |  | ||||||
|             lengthMustBe(0); |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		TEST_METHOD(TooFewClosingBrackets) | 		TEST_METHOD(TooFewClosingBrackets) | ||||||
| 		{ | 		{ | ||||||
|             whenInputIs("[[]"); |             whenInputIs("[[]"); | ||||||
| @@ -44,47 +38,83 @@ namespace ArduinoJsonParserTests | |||||||
|             parseMustFail(); |             parseMustFail(); | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
|  |         TEST_METHOD(EmptyArray) | ||||||
|  |         { | ||||||
|  |             whenInputIs("[]"); | ||||||
|  |             parseMustSucceed(); | ||||||
|  |             lengthMustBe(0); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         TEST_METHOD(NotEnoughTokens) | ||||||
|  |         { | ||||||
|  |             setTokenCountTo(2); | ||||||
|  |  | ||||||
|  |             whenInputIs("[1,2]"); | ||||||
|  |  | ||||||
|  |             parseMustFail(); | ||||||
|  |             itemMustNotExist(0); | ||||||
|  |         } | ||||||
|  |  | ||||||
| 		TEST_METHOD(TwoIntegers) | 		TEST_METHOD(TwoIntegers) | ||||||
| 		{ | 		{ | ||||||
|  |             setTokenCountTo(3); | ||||||
|  |  | ||||||
|             whenInputIs("[1,2]"); |             whenInputIs("[1,2]"); | ||||||
|  |  | ||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             lengthMustBe(2); |             lengthMustBe(2); | ||||||
|             itemMustBe(0, 1L); |             itemMustBe(0, 1L); | ||||||
|             itemMustBe(1, 2L); |             itemMustBe(1, 2L); | ||||||
|  |             itemMustNotExist(2); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|         TEST_METHOD(TwoBooleans) |         TEST_METHOD(TwoBooleans) | ||||||
|         { |         { | ||||||
|  |             setTokenCountTo(3); | ||||||
|  |  | ||||||
|             whenInputIs("[true,false]"); |             whenInputIs("[true,false]"); | ||||||
|  |  | ||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             lengthMustBe(2); |             lengthMustBe(2); | ||||||
|             itemMustBe(0, true); |             itemMustBe(0, true); | ||||||
|             itemMustBe(1, false); |             itemMustBe(1, false); | ||||||
|  |             itemMustNotExist(2); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         TEST_METHOD(TwoStrings) |         TEST_METHOD(TwoStrings) | ||||||
|         { |         { | ||||||
|  |             setTokenCountTo(3); | ||||||
|  |  | ||||||
|             whenInputIs("[\"hello\",\"world\"]"); |             whenInputIs("[\"hello\",\"world\"]"); | ||||||
|  |  | ||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             lengthMustBe(2); |             lengthMustBe(2); | ||||||
|             itemMustBe(0, "hello"); |             itemMustBe(0, "hello"); | ||||||
|             itemMustBe(1, "world"); |             itemMustBe(1, "world"); | ||||||
|  |             itemMustNotExist(2); | ||||||
|         } |         } | ||||||
|  |  | ||||||
| 		TEST_METHOD(TwoDimensionsArray) | 		TEST_METHOD(TwoDimensionsArray) | ||||||
| 		{ | 		{ | ||||||
|  |             setTokenCountTo(7); | ||||||
|  |  | ||||||
|             whenInputIs("[[1,2],[3,4]]"); |             whenInputIs("[[1,2],[3,4]]"); | ||||||
|  |  | ||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             lengthMustBe(2); |             lengthMustBe(2); | ||||||
|             itemMustBe(0, 0, 1L); |             itemMustBe(0, 0, 1L); | ||||||
|             itemMustBe(0, 1, 2L); |             itemMustBe(0, 1, 2L); | ||||||
|             itemMustBe(1, 0, 3L); |             itemMustBe(1, 0, 3L); | ||||||
|             itemMustBe(1, 1, 4L); |             itemMustBe(1, 1, 4L); | ||||||
|  |             itemMustNotExist(2); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|         TEST_METHOD(ThreeDimensionsArray) |         TEST_METHOD(ThreeDimensionsArray) | ||||||
|         { |         { | ||||||
|  |             setTokenCountTo(15); | ||||||
|  |  | ||||||
|             whenInputIs("[[[1,2],[3,4]],[[5,6],[7,8]]]"); |             whenInputIs("[[[1,2],[3,4]],[[5,6],[7,8]]]"); | ||||||
|  |  | ||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             lengthMustBe(2); |             lengthMustBe(2); | ||||||
|             itemMustBe(0, 0, 0, 1L); |             itemMustBe(0, 0, 0, 1L); | ||||||
| @@ -95,10 +125,16 @@ namespace ArduinoJsonParserTests | |||||||
|             itemMustBe(1, 0, 1, 6L); |             itemMustBe(1, 0, 1, 6L); | ||||||
|             itemMustBe(1, 1, 0, 7L); |             itemMustBe(1, 1, 0, 7L); | ||||||
|             itemMustBe(1, 1, 1, 8L); |             itemMustBe(1, 1, 1, 8L); | ||||||
|  |             itemMustNotExist(2); | ||||||
|         }         |         }         | ||||||
| 		 | 		 | ||||||
|     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); | ||||||
| @@ -145,5 +181,15 @@ namespace ArduinoJsonParserTests | |||||||
|         { |         { | ||||||
|             Assert::AreEqual(expected, array.getArray(index0).getArray(index1).getLong(index2)); |             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}"); |             whenInputIs("{\"key\":0}"); | ||||||
|  |  | ||||||
|             parseMustFail(); |             parseMustFail(); | ||||||
|             itemMustNotExists("key"); |             itemMustNotExist("key"); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         TEST_METHOD(TwoIntegers) |         TEST_METHOD(TwoIntegers) | ||||||
| @@ -54,7 +54,7 @@ namespace ArduinoJsonParserTests | |||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             itemMustBe("key1", 1L); |             itemMustBe("key1", 1L); | ||||||
|             itemMustBe("key2", 2L); |             itemMustBe("key2", 2L); | ||||||
|             itemMustNotExists("key3"); |             itemMustNotExist("key3"); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         TEST_METHOD(TwoBooleans) |         TEST_METHOD(TwoBooleans) | ||||||
| @@ -66,7 +66,7 @@ namespace ArduinoJsonParserTests | |||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             itemMustBe("key1", true); |             itemMustBe("key1", true); | ||||||
|             itemMustBe("key2", false); |             itemMustBe("key2", false); | ||||||
|             itemMustNotExists("key3"); |             itemMustNotExist("key3"); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         TEST_METHOD(TwoStrings) |         TEST_METHOD(TwoStrings) | ||||||
| @@ -78,7 +78,7 @@ namespace ArduinoJsonParserTests | |||||||
|             parseMustSucceed(); |             parseMustSucceed(); | ||||||
|             itemMustBe("key1", "hello"); |             itemMustBe("key1", "hello"); | ||||||
|             itemMustBe("key2", "world"); |             itemMustBe("key2", "world"); | ||||||
|             itemMustNotExists("key3"); |             itemMustNotExist("key3"); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         TEST_METHOD(TwoNestedArrays) |         TEST_METHOD(TwoNestedArrays) | ||||||
| @@ -100,7 +100,7 @@ namespace ArduinoJsonParserTests | |||||||
|             arrayItemMustBe(1, 4L); |             arrayItemMustBe(1, 4L); | ||||||
|             arrayItemMustBe(2, 0L); |             arrayItemMustBe(2, 0L); | ||||||
|  |  | ||||||
|             itemMustNotExists("key3"); |             itemMustNotExist("key3"); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     private: |     private: | ||||||
| @@ -141,7 +141,7 @@ namespace ArduinoJsonParserTests | |||||||
|             Assert::AreEqual(expected, hashTable.getString(key)); |             Assert::AreEqual(expected, hashTable.getString(key)); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         void itemMustNotExists(const char* key) |         void itemMustNotExist(const char* key) | ||||||
|         { |         { | ||||||
|             Assert::IsFalse(hashTable.containsKey(key)); |             Assert::IsFalse(hashTable.containsKey(key)); | ||||||
|             Assert::IsFalse(hashTable.getHashTable(key).success()); |             Assert::IsFalse(hashTable.getHashTable(key).success()); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user