| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // Copyright Benoit Blanchon 2014-2017
- // MIT License
- //
- // Arduino JSON library
- // https://bblanchon.github.io/ArduinoJson/
- // If you like this project, please add a star!
- #include <ArduinoJson.h>
- #include <gtest/gtest.h>
- using namespace ArduinoJson::Internals;
- class StringBuilderTests : public testing::Test {
- protected:
- virtual void SetUp() {
- _stringBuilder = new StaticStringBuilder(_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");
- }
|