Files
ArduinoJson/JsonGeneratorTests/JsonArrayTests.cpp

140 lines
2.8 KiB
C++
Raw Normal View History

2014-06-24 13:19:23 +02:00
#include "CppUnitTest.h"
#include "JsonArray.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace JsonGeneratorTests
{
TEST_CLASS(JsonArrayTests)
{
JsonArray<2> arr;
2014-06-24 13:19:23 +02:00
public:
TEST_METHOD(EmptyArray)
{
AssertJsonIs("[]");
}
TEST_METHOD(AddNull)
{
arr.add((char*)0);
AssertJsonIs("[null]");
}
TEST_METHOD(AddOneString)
{
arr.add("hello");
2014-06-24 13:19:23 +02:00
2014-06-24 21:28:02 +02:00
AssertJsonIs("[\"hello\"]");
}
TEST_METHOD(AddOneStringContainingDoubleQuote)
{
arr.add("\"");
AssertJsonIs("[\"\\\"\"]");
}
TEST_METHOD(AddTwoStrings)
{
arr.add("hello");
arr.add("world");
2014-06-24 21:28:02 +02:00
AssertJsonIs("[\"hello\",\"world\"]");
}
TEST_METHOD(AddOneStringOverCapacity)
{
arr.add("hello");
arr.add("world");
arr.add("lost");
2014-06-24 21:28:02 +02:00
AssertJsonIs("[\"hello\",\"world\"]");
}
TEST_METHOD(AddOneNumber)
{
arr.add(3.14);
AssertJsonIs("[3.14]");
}
TEST_METHOD(AddTwoNumbers)
{
arr.add(3.14);
arr.add(2.72);
AssertJsonIs("[3.14,2.72]");
}
TEST_METHOD(AddOneNumberOverCapacity)
{
arr.add(3.14);
arr.add(2.72);
arr.add(1.41);
AssertJsonIs("[3.14,2.72]");
}
TEST_METHOD(AddTrue)
{
arr.add(true);
AssertJsonIs("[true]");
}
TEST_METHOD(AddFalse)
{
arr.add(false);
AssertJsonIs("[false]");
}
TEST_METHOD(AddTwoBooleans)
{
arr.add(false);
arr.add(true);
AssertJsonIs("[false,true]");
}
TEST_METHOD(AddOneBooleanOverCapacity)
{
arr.add(false);
arr.add(true);
arr.add(false);
AssertJsonIs("[false,true]");
}
2014-06-25 13:14:10 +02:00
TEST_METHOD(AddOneEmptyNestedArray)
{
JsonArray<1> nestedArray;
2014-06-25 13:14:10 +02:00
arr.add(nestedArray);
AssertJsonIs("[[]]");
}
TEST_METHOD(AddOneNestedArrayWithOneItem)
{
JsonArray<1> nestedArray;
nestedArray.add(3.14);
arr.add(nestedArray);
AssertJsonIs("[[3.14]]");
}
void AssertJsonIs(const char* expected)
{
2014-06-24 13:19:23 +02:00
char buffer[256];
2014-06-24 13:19:23 +02:00
arr.writeTo(buffer, sizeof(buffer));
Assert::AreEqual(expected, buffer);
2014-06-24 13:19:23 +02:00
}
};
}