EXPECT_TRUE(String(257, ' ') == strutils::format(_T("%s"), String(257, ' ').c_str()));\r
}\r
\r
+ TEST_F(UnicodeStringTest, Join)\r
+ {\r
+ std::vector<String> strs;\r
+ strs = std::vector<String>{ _T("") };\r
+ EXPECT_EQ(_T(""), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>();\r
+ EXPECT_EQ(_T(""), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T(""), _T("") };\r
+ EXPECT_EQ(_T("|"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T("a") };\r
+ EXPECT_EQ(_T("a"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T("a"), _T("b") };\r
+ EXPECT_EQ(_T("a|b"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T(""), _T("b") };\r
+ EXPECT_EQ(_T("|b"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T("a"), _T("") };\r
+ EXPECT_EQ(_T("a|"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T("a"), _T("b"), _T("c") };\r
+ EXPECT_EQ(_T("a|b|c"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T(""), _T("b"), _T("c") };\r
+ EXPECT_EQ(_T("|b|c"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T("a"), _T(""), _T("c") };\r
+ EXPECT_EQ(_T("a||c"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+ strs = std::vector<String>{ _T("a"), _T("b"), _T("") };\r
+ EXPECT_EQ(_T("a|b|"), strutils::join(strs.begin(), strs.end(), _T("|")));\r
+\r
+ strs = std::vector<String>{ };\r
+ EXPECT_EQ(_T(""), strutils::join(strs.begin(), strs.end(), _T("|"),\r
+ [](const auto& str) { return strutils::makeupper(str); }));\r
+ strs = std::vector<String>{ _T("") };\r
+ EXPECT_EQ(_T(""), strutils::join(strs.begin(), strs.end(), _T("|"),\r
+ [](const auto& str) { return strutils::makeupper(str); }));\r
+ strs = std::vector<String>{ _T(""), _T("")};\r
+ EXPECT_EQ(_T("|"), strutils::join(strs.begin(), strs.end(), _T("|"),\r
+ [](const auto& str) { return strutils::makeupper(str); }));\r
+ strs = std::vector<String>{ _T("a"), _T("b"), _T("c") };\r
+ EXPECT_EQ(_T("A|B|C"), strutils::join(strs.begin(), strs.end(), _T("|"),\r
+ [](const auto& str) { return strutils::makeupper(str); }));\r
+ strs = std::vector<String>{ _T(""), _T("b"), _T("c") };\r
+ EXPECT_EQ(_T("|B|C"), strutils::join(strs.begin(), strs.end(), _T("|"),\r
+ [](const auto& str) { return strutils::makeupper(str); }));\r
+ strs = std::vector<String>{ _T("a"), _T(""), _T("c") };\r
+ EXPECT_EQ(_T("A||C"), strutils::join(strs.begin(), strs.end(), _T("|"),\r
+ [](const auto& str) { return strutils::makeupper(str); }));\r
+ strs = std::vector<String>{ _T("a"), _T("b"), _T("") };\r
+ EXPECT_EQ(_T("A|B|"), strutils::join(strs.begin(), strs.end(), _T("|"),\r
+ [](const auto& str) { return strutils::makeupper(str); }));\r
+ }\r
+\r
} // namespace\r