#include "catch.hpp" #include #include TEST_CASE("Enable", "[regex-config]") { advss::RegexConfig regex(false); REQUIRE(regex.Enabled() == false); regex.SetEnabled(true); REQUIRE(regex.Enabled() == true); } TEST_CASE("Matches (default options)", "[regex-config]") { advss::RegexConfig regex(true); bool result = regex.Matches(std::string(""), ""); REQUIRE(result == true); result = regex.Matches(std::string("a"), "a"); REQUIRE(result == true); result = regex.Matches(std::string("a"), ""); REQUIRE(result == false); result = regex.Matches(std::string("a"), "abc"); REQUIRE(result == false); result = regex.Matches(std::string("abc"), "abc"); REQUIRE(result == true); result = regex.Matches(std::string("abc"), "a"); REQUIRE(result == false); } TEST_CASE("Matches (regex options)", "[regex-config]") { advss::RegexConfig regex(true); bool result = regex.Matches(std::string("abc"), "abc"); REQUIRE(result == true); result = regex.Matches(std::string("abc"), "Abc"); REQUIRE(result == false); regex.SetPatternOptions(QRegularExpression::CaseInsensitiveOption); result = regex.Matches(std::string("abc"), "Abc"); REQUIRE(result == true); } TEST_CASE("Matches (invalid expression)", "[regex-config]") { advss::RegexConfig regex(true); bool result = regex.Matches(std::string("a"), "("); REQUIRE(result == false); regex = advss::RegexConfig::PartialMatchRegexConfig(); result = regex.Matches(std::string("abc"), "("); REQUIRE(result == false); } TEST_CASE("Matches (PartialMatchRegexConfig)", "[regex-config]") { auto regex = advss::RegexConfig::PartialMatchRegexConfig(); regex.SetEnabled(true); bool result = regex.Matches(std::string(""), ""); REQUIRE(result == true); result = regex.Matches(std::string("a"), ""); REQUIRE(result == true); result = regex.Matches(std::string("a"), "abc"); REQUIRE(result == false); result = regex.Matches(std::string("abc"), "abc"); REQUIRE(result == true); result = regex.Matches(std::string("abc"), "a"); REQUIRE(result == true); }