Files
MuditaOS/module-utils/test/unittest_utils.cpp

81 lines
2.2 KiB
C++

#include <cstring>
#include <iostream>
#include <memory>
#include <unistd.h>
#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);
}