Files
IoTManager/lib/ArduinoStreamUtils/extras/test/StringPrintTest.cpp
Dmitry Borisenko 24a9d55ea0 first
2021-12-22 14:09:50 +01:00

78 lines
1.8 KiB
C++

// StreamUtils - github.com/bblanchon/ArduinoStreamUtils
// Copyright Benoit Blanchon 2019-2021
// MIT License
#include "StreamUtils/Prints/StringPrint.hpp"
#include "doctest.h"
using namespace StreamUtils;
TEST_CASE("StringPrint") {
WHEN("Constructed with no argument") {
StringPrint s;
THEN("str() return an empty String") {
CHECK(s.str() == "");
}
THEN("write(uint8_t) appends the string") {
s.write('A');
s.write('B');
CHECK(s.str() == "AB");
}
THEN("write(uint8_t) return 1") {
CHECK(s.write('A') == 1);
CHECK(s.write('B') == 1);
}
THEN("write(0) return 0") {
CHECK(s.write(0) == 0);
}
THEN("write(uint8_t*, size_t) appends the string") {
s.write(reinterpret_cast<const uint8_t*>("ABXXX"), 2);
s.write(reinterpret_cast<const uint8_t*>("CDEXX"), 3);
CHECK(s.str() == "ABCDE");
}
THEN("write(uint8_t*, size_t) return number of chars written") {
uint8_t dummy[32] = {1, 2, 3, 0, 5, 6};
CHECK(s.write(dummy, 2) == 2);
CHECK(s.write(dummy, 3) == 3);
CHECK(s.write(dummy, 4) == 3);
}
THEN("str(String) sets the string") {
s.str("world!");
CHECK(s.str() == "world!");
}
}
WHEN("Constructed with string") {
StringPrint s("hello");
THEN("str() return the stirng passed to contructor") {
CHECK(s.str() == "hello");
}
THEN("write(uint8_t) appends the string") {
s.write('A');
s.write('B');
CHECK(s.str() == "helloAB");
}
THEN("write(uint8_t*, size_t) appends the string") {
s.write(reinterpret_cast<const uint8_t*>("ABXXX"), 2);
s.write(reinterpret_cast<const uint8_t*>("CDEXX"), 3);
CHECK(s.str() == "helloABCDE");
}
THEN("str(String) replaces the string") {
s.str("world!");
CHECK(s.str() == "world!");
}
}
}