#include #include #include #include #define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file #include "catch.hpp" #include "Utils.hpp" TEST_CASE("Split tests") { std::string delimiter = "\r\n"; std::string inputStr1 = "\r\nOK\r\n\r\nNO CARRIER\r\n\r\nFINISHED\r\n"; auto ret = utils::split(inputStr1, delimiter, 0, false); REQUIRE(ret.size() == 7); REQUIRE(ret[0] == ""); REQUIRE(ret[1] == "OK"); REQUIRE(ret[2] == ""); REQUIRE(ret[3] == "NO CARRIER"); REQUIRE(ret[4] == ""); REQUIRE(ret[5] == "FINISHED"); REQUIRE(ret[6] == ""); inputStr1 = "\r\nOK\r\n\r\nNO CARRIER\r\n\r\nFINISHED\r\n"; ret = utils::split(inputStr1, delimiter); REQUIRE(ret.size() == 3); REQUIRE(ret[0] == "OK"); REQUIRE(ret[1] == "NO CARRIER"); REQUIRE(ret[2] == "FINISHED"); inputStr1 = "\r\nOK\r\n\r\nNO CARRIER\r\n\r\nFINISHED\r\n"; ret = utils::split(inputStr1, delimiter, 2, false); REQUIRE(ret.size() == 2); REQUIRE(ret[0] == ""); REQUIRE(ret[1] == "OK"); inputStr1 = "\r\nOK\r\n\r\nNO CARRIER\r\n\r\nFINISHED\r\n"; ret = utils::split(inputStr1, delimiter, 2); REQUIRE(ret.size() == 2); REQUIRE(ret[0] == "OK"); REQUIRE(ret[1] == "NO CARRIER"); ret = utils::split("a-b-c", "-"); REQUIRE(ret.size() == 3); REQUIRE(ret[0] == "a"); REQUIRE(ret[1] == "b"); REQUIRE(ret[2] == "c"); ret = utils::split("a--c", "-", 0, false); REQUIRE(ret.size() == 3); REQUIRE(ret[0] == "a"); REQUIRE(ret[1] == ""); REQUIRE(ret[2] == "c"); ret = utils::split("a--c", "-"); REQUIRE(ret.size() == 2); REQUIRE(ret[0] == "a"); REQUIRE(ret[1] == "c"); ret = utils::split("-b-", "-", 0, false); REQUIRE(ret.size() == 3); REQUIRE(ret[0] == ""); REQUIRE(ret[1] == "b"); REQUIRE(ret[2] == ""); ret = utils::split("-b-", "-"); REQUIRE(ret.size() == 1); REQUIRE(ret[0] == "b"); ret = utils::split("", "-", 0, false); REQUIRE(ret.size() == 1); REQUIRE(ret[0] == ""); ret = utils::split("", "-"); REQUIRE(ret.size() == 0); }