mirror of
				https://github.com/bblanchon/ArduinoJson.git
				synced 2025-11-04 00:21:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			141 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include "CppUnitTest.h"
 | 
						|
#include "JsonParser.h"
 | 
						|
 | 
						|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
 | 
						|
 | 
						|
namespace ArduinoJsonParserTests
 | 
						|
{
 | 
						|
	TEST_CLASS(TestArrays)
 | 
						|
	{
 | 
						|
		JsonParser<32> parser;
 | 
						|
 | 
						|
	public:
 | 
						|
		
 | 
						|
		TEST_METHOD(EmptyString)
 | 
						|
		{
 | 
						|
			char json[] = "";
 | 
						|
 | 
						|
			JsonArray array = parser.parseArray(json);
 | 
						|
			Assert::IsFalse(array.success());
 | 
						|
		}
 | 
						|
 | 
						|
		TEST_METHOD(EmptyArray)
 | 
						|
		{
 | 
						|
			char json[] = "[]";
 | 
						|
 | 
						|
			JsonArray array = parser.parseArray(json);
 | 
						|
			Assert::IsTrue(array.success());
 | 
						|
		}
 | 
						|
 | 
						|
		TEST_METHOD(TooFewClosingBrackets)
 | 
						|
		{
 | 
						|
			char json[] = "[[]";
 | 
						|
 | 
						|
			JsonArray array = parser.parseArray(json);
 | 
						|
			Assert::IsFalse(array.success());
 | 
						|
		}
 | 
						|
 | 
						|
		TEST_METHOD(TooManyClosingBrackets)
 | 
						|
		{
 | 
						|
			char json[] = "[]]";
 | 
						|
 | 
						|
			JsonArray array = parser.parseArray(json);
 | 
						|
			Assert::IsFalse(array.success());
 | 
						|
		}
 | 
						|
		
 | 
						|
		TEST_METHOD(OneDimensionArray)
 | 
						|
		{
 | 
						|
			char json [] = "[0,0]";
 | 
						|
 | 
						|
			JsonArray array = parser.parseArray(json);
 | 
						|
			Assert::IsTrue(array.success());
 | 
						|
			Assert::AreEqual(2, array.getLength());
 | 
						|
 | 
						|
			for (int i = 0; i < 2; i++)
 | 
						|
			{
 | 
						|
				Assert::AreEqual(0L, array.getLong(i));
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		TEST_METHOD(TwoDimensionsArray)
 | 
						|
		{
 | 
						|
			char json[] = "[[0,0],[0,0]]";
 | 
						|
 | 
						|
			JsonArray array1 = parser.parseArray(json);
 | 
						|
			Assert::IsTrue(array1.success());
 | 
						|
			Assert::AreEqual(2, array1.getLength());
 | 
						|
 | 
						|
			for (int i = 0; i < 2; i++)
 | 
						|
			{
 | 
						|
				JsonArray array2 = array1.getArray(i);
 | 
						|
 | 
						|
				Assert::AreEqual(2, array2.getLength());
 | 
						|
 | 
						|
				for (int j = 0; j < 2; j++)
 | 
						|
				{
 | 
						|
					Assert::AreEqual(0L, array2.getLong(j));
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		TEST_METHOD(TreeDimensionsArray)
 | 
						|
		{
 | 
						|
			char json[] = "[[[0,0],[0,0]],[[0,0],[0,0]]]";
 | 
						|
 | 
						|
			JsonArray array1 = parser.parseArray(json);
 | 
						|
			Assert::IsTrue(array1.success());
 | 
						|
			Assert::AreEqual(2, array1.getLength());
 | 
						|
 | 
						|
			for (int i = 0; i < 2; i++)
 | 
						|
			{
 | 
						|
				JsonArray array2 = array1.getArray(i);
 | 
						|
 | 
						|
				Assert::AreEqual(2, array2.getLength());
 | 
						|
 | 
						|
				for (int j = 0; j < 2; j++)
 | 
						|
				{
 | 
						|
					JsonArray array3 = array2.getArray(j);
 | 
						|
 | 
						|
					Assert::AreEqual(2, array3.getLength());
 | 
						|
 | 
						|
					for (int k = 0; k < 2; k++)
 | 
						|
					{
 | 
						|
						Assert::AreEqual(0L, array3.getLong(k));
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		TEST_METHOD(OneDimensionArrayInHashTable)
 | 
						|
		{
 | 
						|
			char json[] = "{a:[0,0],b:[0,0]}";
 | 
						|
 | 
						|
			JsonHashTable root = parser.parseHashTable(json);
 | 
						|
			Assert::IsTrue(root.success());
 | 
						|
 | 
						|
			JsonArray arrayA = root.getArray("a");
 | 
						|
			Assert::IsTrue(arrayA.success());
 | 
						|
			Assert::AreEqual(2, arrayA.getLength());
 | 
						|
 | 
						|
			JsonArray arrayB = root.getArray("b");
 | 
						|
			Assert::IsTrue(arrayB.success());
 | 
						|
			Assert::AreEqual(2, arrayB.getLength());
 | 
						|
		}
 | 
						|
 | 
						|
		TEST_METHOD(TwoDimensionsArrayInHashTable)
 | 
						|
		{
 | 
						|
			char json[] = "{a:[[0],[0]],b:[[0],[0]]}";
 | 
						|
 | 
						|
			JsonHashTable root = parser.parseHashTable(json);
 | 
						|
			Assert::IsTrue(root.success());
 | 
						|
 | 
						|
			JsonArray arrayA = root.getArray("a");
 | 
						|
			Assert::IsTrue(arrayA.success());
 | 
						|
			Assert::AreEqual(2, arrayA.getLength());
 | 
						|
 | 
						|
			JsonArray arrayB = root.getArray("b");
 | 
						|
			Assert::IsTrue(arrayB.success());
 | 
						|
			Assert::AreEqual(2, arrayB.getLength());
 | 
						|
		}
 | 
						|
	};
 | 
						|
} |