2014-07-03 13:58:08 +02:00
|
|
|
/*
|
|
|
|
* Arduino JSON library
|
|
|
|
* Benoit Blanchon 2014 - MIT License
|
|
|
|
*/
|
|
|
|
|
2014-02-26 21:58:20 +01:00
|
|
|
#include "CppUnitTest.h"
|
|
|
|
#include "JsonParser.h"
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
2014-07-03 14:00:51 +02:00
|
|
|
using namespace ArduinoJson::Parser;
|
2014-02-26 21:58:20 +01:00
|
|
|
|
|
|
|
namespace ArduinoJsonParserTests
|
|
|
|
{
|
2014-07-14 10:33:24 +02:00
|
|
|
TEST_CLASS(JsonHashTableTests)
|
2014-02-26 21:58:20 +01:00
|
|
|
{
|
|
|
|
char json[128];
|
|
|
|
JsonParser<32> parser;
|
|
|
|
JsonHashTable hashTable;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
TEST_METHOD_INITIALIZE(Initialize)
|
|
|
|
{
|
|
|
|
strcpy(json, "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}");
|
|
|
|
hashTable = parser.parseHashTable(json);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_METHOD(HashTable_Success_ReturnsTrue)
|
|
|
|
{
|
|
|
|
Assert::IsTrue(hashTable.success());
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_METHOD(HashTable_GetString_ReturnsExpectedValue)
|
|
|
|
{
|
|
|
|
string name = hashTable.getString("Name");
|
|
|
|
Assert::AreEqual(name, string("Blanchon"));
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_METHOD(HashTable_GetArray_ReturnsExpectedValue)
|
|
|
|
{
|
|
|
|
JsonArray skills = hashTable.getArray("Skills");
|
|
|
|
|
|
|
|
string skill0 = skills.getString(0);
|
|
|
|
Assert::AreEqual(skill0, string("C"));
|
|
|
|
|
|
|
|
string skill1 = skills.getString(1);
|
|
|
|
Assert::AreEqual(skill1, string("C++"));
|
|
|
|
|
|
|
|
string skill2 = skills.getString(2);
|
|
|
|
Assert::AreEqual(skill2, string("C#"));
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_METHOD(HashTable_GetLong_ReturnsExpectedValue)
|
|
|
|
{
|
|
|
|
int age = hashTable.getLong("Age");
|
|
|
|
Assert::AreEqual(32, age);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_METHOD(HashTable_GetBool_ReturnsExpectedValue)
|
|
|
|
{
|
|
|
|
bool online = hashTable.getBool("Online");
|
|
|
|
Assert::AreEqual(true, online);
|
|
|
|
}
|
2014-07-14 11:48:46 +02:00
|
|
|
|
|
|
|
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());
|
|
|
|
}
|
2014-02-26 21:58:20 +01:00
|
|
|
};
|
|
|
|
}
|