Files
ArduinoJson/JsonGeneratorTests/StringBuilderTests.cpp

85 lines
1.7 KiB
C++
Raw Permalink Normal View History

2014-07-08 21:29:19 +02:00
/*
* Arduino JSON library
* Benoit Blanchon 2014 - MIT License
*/
2014-07-02 13:16:44 +02:00
#include "CppUnitTest.h"
#include "StringBuilder.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace ArduinoJson::Internals;
2014-07-02 13:16:44 +02:00
namespace JsonGeneratorTests
{
TEST_CLASS(StringBuilderTests)
{
2014-07-02 13:16:44 +02:00
char buffer[20];
Print* sb;
size_t returnValue;
public:
2014-07-02 13:16:44 +02:00
TEST_METHOD_INITIALIZE(Initialize)
{
sb = new StringBuilder(buffer, sizeof(buffer));
}
TEST_METHOD(InitialState)
{
2014-07-08 21:29:19 +02:00
outputMustBe("");
2014-07-02 13:16:44 +02:00
}
TEST_METHOD(OverCapacity)
{
2014-07-08 21:29:19 +02:00
print("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
resultMustBe(19);
print("ABC");
resultMustBe(0);
2014-07-02 13:16:44 +02:00
2014-07-08 21:29:19 +02:00
outputMustBe("ABCDEFGHIJKLMNOPQRS");
2014-07-02 13:16:44 +02:00
}
TEST_METHOD(EmptyString)
{
2014-07-08 21:29:19 +02:00
print("");
resultMustBe(0);
outputMustBe("");
2014-07-02 13:16:44 +02:00
}
TEST_METHOD(OneString)
{
2014-07-08 21:29:19 +02:00
print("ABCD");
resultMustBe(4);
outputMustBe("ABCD");
2014-07-02 13:16:44 +02:00
}
TEST_METHOD(TwoStrings)
{
2014-07-08 21:29:19 +02:00
print("ABCD");
resultMustBe(4);
2014-07-02 13:16:44 +02:00
2014-07-08 21:29:19 +02:00
print("EFGH");
resultMustBe(4);
2014-07-02 13:16:44 +02:00
2014-07-08 21:29:19 +02:00
outputMustBe("ABCDEFGH");
2014-07-02 13:16:44 +02:00
}
private:
2014-07-08 21:29:19 +02:00
void print(const char* value)
2014-07-02 13:16:44 +02:00
{
2014-07-03 13:38:58 +02:00
returnValue = sb->print(value);
2014-07-02 13:16:44 +02:00
}
2014-07-08 21:29:19 +02:00
void outputMustBe(const char* expected)
2014-07-02 13:16:44 +02:00
{
Assert::AreEqual(expected, buffer);
}
2014-07-08 21:29:19 +02:00
void resultMustBe(size_t expected)
2014-07-02 13:16:44 +02:00
{
Assert::AreEqual(expected, returnValue);
}
};
2014-07-02 13:16:44 +02:00
}