#include "StringUtils.h"

#include "TestFramework.h"
#include "TestUtils.h"

TEST_CASE(TestStringUtils_StripSurroundingWhitepsace, "core")
{
    std::string input = "   super()    ";
    std::string stripped = StringUtils::stripSurroundingWhitepsace(input);
    REQUIRE(stripped == "super()");
}

TEST_CASE(TestStringUtils_RemoveUpTo, "core")
{
    std::string input = "def{filename}abc/123/456";
    std::string removed = StringUtils::removeUpTo(input, "{filename}");
    REQUIRE(removed == "abc/123/456");
}

TEST_CASE(TestStringUtils_startsWith, "core")
{
    std::string input = "  ```some triple ticks ";
    bool ignore_whitespace{false};
    auto starts_with = StringUtils::startsWith(input, "```", ignore_whitespace);
    REQUIRE(!starts_with);

    ignore_whitespace = true;
    starts_with = StringUtils::startsWith(input, "```", ignore_whitespace);
    REQUIRE(starts_with);
}
