From bb53c38fbdf10c3e7afc713b5fa0b71f1d0d5aba Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Thu, 19 Jul 2018 15:32:51 +0200 Subject: [PATCH] add unit tests for join_string() overloads --- src/stringfunc.hxx | 1 - test/stringfunc.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletions(-) diff --git a/src/stringfunc.hxx b/src/stringfunc.hxx index bb5a960..d945526 100644 --- a/src/stringfunc.hxx +++ b/src/stringfunc.hxx @@ -178,7 +178,6 @@ std::string join_string( const std::string& delimiter = "\n" ); - /* ** conversions: */ diff --git a/test/stringfunc.cpp b/test/stringfunc.cpp index 7771b55..26cc0c8 100644 --- a/test/stringfunc.cpp +++ b/test/stringfunc.cpp @@ -727,6 +727,57 @@ BOOST_AUTO_TEST_CASE(JoinStringIterSet) } // eo JoinStringSet +BOOST_AUTO_TEST_CASE(JoinStringIterSet_Default) +{ /* default delimiter is newline */ + std::set< std::string > parts; + + parts.insert ("foo"); + parts.insert ("bar"); + parts.insert ("baz"); + + BOOST_CHECK_EQUAL(join_string (parts.begin (), parts.end ()), "bar\nbaz\nfoo"); + BOOST_CHECK_EQUAL(join_string (parts ), "bar\nbaz\nfoo"); + +} // eo JoinStringSet + + +BOOST_AUTO_TEST_CASE(JoinStringArray_Empty) +{ + const char *const parts [] = { NULL }; + + BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [0], "/"), ""); + BOOST_CHECK_EQUAL(join_string(parts , "/"), ""); + + BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [0]), ""); + BOOST_CHECK_EQUAL(join_string(parts ), ""); + +} // eo JoinStringSet + +BOOST_AUTO_TEST_CASE(JoinStringArray_One) +{ + const char *const parts [] = { "one", NULL }; + + BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [1], "/"), "one"); + BOOST_CHECK_EQUAL(join_string(parts , "/"), "one"); + + BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [1]), "one"); + BOOST_CHECK_EQUAL(join_string(parts ), "one"); + +} // eo JoinStringSet + +BOOST_AUTO_TEST_CASE(JoinStringArray_Many) +{ + const char *const parts [5] = { "one", "two", "three", "many", NULL }; + + BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [4], "/"), "one/two/three/many"); + BOOST_CHECK_EQUAL(join_string(parts , "/"), "one/two/three/many"); + + BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [4]), "one\ntwo\nthree\nmany"); + BOOST_CHECK_EQUAL(join_string(parts ), "one\ntwo\nthree\nmany"); + +} // eo JoinStringSet + + BOOST_AUTO_TEST_CASE(ConversionStringInt) { std::string s1("24"); -- 1.7.1