/* * stringutilstest.cpp * * Created on: Dec 4, 2016 * Author: gregor */ #include #include "GLTB/stringutils.h" TEST(StringUtils, toUpper) { std::string input = "lowercase"; std::string result = gltb::toUpper(input); ASSERT_EQ("LOWERCASE", result); } TEST(StringUtils, toLower) { std::string input = "UPPERCASE"; std::string result = gltb::toLower(input); ASSERT_EQ("uppercase", result); } TEST(StringUtils, splitSingleChar) { std::string input = "a,b,c"; std::vector result = gltb::split(input, ","); ASSERT_EQ(3, result.size()); ASSERT_EQ("a", result[0]); ASSERT_EQ("b", result[1]); ASSERT_EQ("c", result[2]); } TEST(StringUtils, splitSingleCharConsecutive) { std::string input = "a,b,,c"; std::vector result = gltb::split(input, ","); ASSERT_EQ(4, result.size()); ASSERT_EQ("a", result[0]); ASSERT_EQ("b", result[1]); ASSERT_EQ("", result[2]); ASSERT_EQ("c", result[3]); } TEST(StringUtils, splitSingleCharAtEnd) { std::string input = "a,b,c,"; std::vector result = gltb::split(input, ","); ASSERT_EQ(4, result.size()); ASSERT_EQ("a", result[0]); ASSERT_EQ("b", result[1]); ASSERT_EQ("c", result[2]); ASSERT_EQ("", result[3]); } TEST(StringUtils, splitMultiChar) { std::string input = "a::b::c"; std::vector result = gltb::split(input, "::"); ASSERT_EQ(3, result.size()); ASSERT_EQ("a", result[0]); ASSERT_EQ("b", result[1]); ASSERT_EQ("c", result[2]); } TEST(StringUtils, splitMultiCharConsecutive) { std::string input = "a::b::::c"; std::vector result = gltb::split(input, "::"); ASSERT_EQ(4, result.size()); ASSERT_EQ("a", result[0]); ASSERT_EQ("b", result[1]); ASSERT_EQ("", result[2]); ASSERT_EQ("c", result[3]); } TEST(StringUtils, splitSingleMultiCharAtEnd) { std::string input = "a::b::c::"; std::vector result = gltb::split(input, "::"); ASSERT_EQ(4, result.size()); ASSERT_EQ("a", result[0]); ASSERT_EQ("b", result[1]); ASSERT_EQ("c", result[2]); ASSERT_EQ("", result[3]); } int main(int argc, char *argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }