| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // Copyright Benoit Blanchon 2014-2015
- // MIT License
- //
- // Arduino JSON library
- // https://github.com/bblanchon/ArduinoJson
- #include <gtest/gtest.h>
- #include <ArduinoJson/Internals/StringBuilder.hpp>
- using namespace ArduinoJson::Internals;
- class StringBuilderTests : public testing::Test {
- protected:
- virtual void SetUp() {
- _stringBuilder = new StringBuilder(_buffer, sizeof(_buffer));
- }
- virtual void TearDown() { delete _stringBuilder; }
- void print(const char *value) { _returnValue = _stringBuilder->print(value); }
- void outputMustBe(const char *expected) { EXPECT_STREQ(expected, _buffer); }
- void resultMustBe(size_t expected) { EXPECT_EQ(expected, _returnValue); }
- private:
- char _buffer[20];
- Print *_stringBuilder;
- size_t _returnValue;
- };
- TEST_F(StringBuilderTests, InitialState) { outputMustBe(""); }
- TEST_F(StringBuilderTests, OverCapacity) {
- print("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
- resultMustBe(19);
- print("ABC");
- resultMustBe(0);
- outputMustBe("ABCDEFGHIJKLMNOPQRS");
- }
- TEST_F(StringBuilderTests, EmptyString) {
- print("");
- resultMustBe(0);
- outputMustBe("");
- }
- TEST_F(StringBuilderTests, OneString) {
- print("ABCD");
- resultMustBe(4);
- outputMustBe("ABCD");
- }
- TEST_F(StringBuilderTests, TwoStrings) {
- print("ABCD");
- resultMustBe(4);
- print("EFGH");
- resultMustBe(4);
- outputMustBe("ABCDEFGH");
- }
|