forked from bblanchon/ArduinoJson
85 lines
1.7 KiB
C++
85 lines
1.7 KiB
C++
/*
|
|
* Arduino JSON library
|
|
* Benoit Blanchon 2014 - MIT License
|
|
*/
|
|
|
|
#include "CppUnitTest.h"
|
|
#include "StringBuilder.h"
|
|
|
|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
|
using namespace ArduinoJson::Internals;
|
|
|
|
namespace JsonGeneratorTests
|
|
{
|
|
TEST_CLASS(StringBuilderTests)
|
|
{
|
|
char buffer[20];
|
|
Print* sb;
|
|
size_t returnValue;
|
|
|
|
public:
|
|
|
|
TEST_METHOD_INITIALIZE(Initialize)
|
|
{
|
|
sb = new StringBuilder(buffer, sizeof(buffer));
|
|
}
|
|
|
|
TEST_METHOD(InitialState)
|
|
{
|
|
outputMustBe("");
|
|
}
|
|
|
|
TEST_METHOD(OverCapacity)
|
|
{
|
|
print("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
|
|
resultMustBe(19);
|
|
|
|
print("ABC");
|
|
resultMustBe(0);
|
|
|
|
outputMustBe("ABCDEFGHIJKLMNOPQRS");
|
|
}
|
|
|
|
TEST_METHOD(EmptyString)
|
|
{
|
|
print("");
|
|
resultMustBe(0);
|
|
outputMustBe("");
|
|
}
|
|
|
|
TEST_METHOD(OneString)
|
|
{
|
|
print("ABCD");
|
|
resultMustBe(4);
|
|
outputMustBe("ABCD");
|
|
}
|
|
|
|
TEST_METHOD(TwoStrings)
|
|
{
|
|
print("ABCD");
|
|
resultMustBe(4);
|
|
|
|
print("EFGH");
|
|
resultMustBe(4);
|
|
|
|
outputMustBe("ABCDEFGH");
|
|
}
|
|
|
|
private:
|
|
|
|
void print(const char* value)
|
|
{
|
|
returnValue = sb->print(value);
|
|
}
|
|
|
|
void outputMustBe(const char* expected)
|
|
{
|
|
Assert::AreEqual(expected, buffer);
|
|
}
|
|
|
|
void resultMustBe(size_t expected)
|
|
{
|
|
Assert::AreEqual(expected, returnValue);
|
|
}
|
|
};
|
|
} |