Added unit tests of the JsonArray example

This commit is contained in:
Benoit Blanchon
2014-02-26 22:09:14 +01:00
parent d994178678
commit a58fb13d37
3 changed files with 206 additions and 152 deletions

View File

@ -95,6 +95,7 @@
<ClCompile Include="..\JsonHashTable.cpp" /> <ClCompile Include="..\JsonHashTable.cpp" />
<ClCompile Include="..\JsonObjectBase.cpp" /> <ClCompile Include="..\JsonObjectBase.cpp" />
<ClCompile Include="..\utility\jsmn.cpp" /> <ClCompile Include="..\utility\jsmn.cpp" />
<ClCompile Include="TestArrayExample.cpp" />
<ClCompile Include="TestHashTableExample.cpp" /> <ClCompile Include="TestHashTableExample.cpp" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -47,5 +47,8 @@
<ClCompile Include="TestHashTableExample.cpp"> <ClCompile Include="TestHashTableExample.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="TestArrayExample.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,50 @@
#include "CppUnitTest.h"
#include "JsonParser.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace ArduinoJsonParserTests
{
TEST_CLASS(TestArrayExample)
{
char json[128];
JsonParser<32> parser;
JsonArray array;
public:
TEST_METHOD_INITIALIZE(Initialize)
{
strcpy(json, "[[1.2,3.4],[5.6,7.8]]");
array = parser.parseArray(json);
}
TEST_METHOD(Array_Success_ReturnsTrue)
{
Assert::IsTrue(array.success());
}
TEST_METHOD(Array_GetLength_Returns2)
{
Assert::AreEqual(2, array.getLength());
}
TEST_METHOD(Array_GetArray0_ReturnsInnerArray0)
{
JsonArray innerArray = array.getArray(0);
Assert::AreEqual(2, innerArray.getLength());
Assert::AreEqual(1.2, innerArray.getDouble(0));
Assert::AreEqual(3.4, innerArray.getDouble(1));
}
TEST_METHOD(Array_GetArray1_ReturnsInnerArray1)
{
JsonArray innerArray = array.getArray(1);
Assert::AreEqual(2, innerArray.getLength());
Assert::AreEqual(5.6, innerArray.getDouble(0));
Assert::AreEqual(7.8, innerArray.getDouble(1));
}
};
}