#pragma once
#include "AstGlobal.h"
#include "ast/CommandDispatcher.hpp"
#include "ast/Test.h"
AST_USING_NAMESPACE
TEST(CmdSplitTest, Basic)
{
using StringViewVector = std::vector<StringView>;
using namespace detail;
{
auto result = split("a b c");
EXPECT_EQ(result, StringViewVector({"a", "b", "c"}));
}
{
auto result = split(" a b c ");
EXPECT_EQ(result, StringViewVector({"a", "b", "c"}));
}
{
auto result = split("");
EXPECT_EQ(result, StringViewVector({}));
}
{
auto result = split(" ");
EXPECT_EQ(result, StringViewVector({}));
}
{
auto result = split(R"("a" "b c")");
EXPECT_EQ(result, StringViewVector({"a", "b c"}));
}
{
auto result = split(R"( "" b c )");
EXPECT_EQ(result, StringViewVector({"", "b", "c"}));
}
{
auto result = split(R"( " " b c )");
EXPECT_EQ(result, StringViewVector({" ", "b", "c"}));
}
{
auto result = split(R"( a"b c" )");
EXPECT_EQ(result, StringViewVector({"a", "b c"}));
}
{
auto result = split(R"(a"b c"d)");
EXPECT_EQ(result, StringViewVector({"a", "b c", "d"}));
}
}
GTEST_MAIN()