#include <stdplus/str/buf.hpp>
#include <stdplus/str/cat.hpp>
#include <stdplus/zstring_view.hpp>

#include <string>
#include <string_view>

#include <gtest/gtest.h>

namespace stdplus
{

using namespace std::string_literals;
using namespace std::string_view_literals;

TEST(StrCat, NoStr)
{
    EXPECT_EQ("", strCat());
}

TEST(StrCat, SingleStr)
{
    EXPECT_EQ("func", strCat("func"));
}

TEST(StrCat, Multi)
{
    EXPECT_EQ("func world test ff",
              strCat("func", " world"sv, " test"s, " ff"_zsv));
}

TEST(StrCat, MoveStr)
{
    EXPECT_EQ("func", strCat("func"s));
    EXPECT_EQ("func world", strCat("func"s, " world"));
}

TEST(StrAppend, Buf)
{
    StrBuf buf;
    strAppend(buf, "a ");
    strAppend(buf);
    strAppend(buf, "b"s, " c"sv);
    EXPECT_EQ("a b c", buf);
}

} // namespace stdplus
