BOOST_AUTO_TEST_CASE(JoinString1)
{
std::list< std::string > parts;
- get_push_back_filler(parts)("1")("2")("drei");
-
std::string joined_string= join_string(parts,"/");
+ BOOST_CHECK_EQUAL( std::string("") , joined_string );
+
+ parts.push_back ("1");
+ joined_string= join_string(parts,"/");
+ // we should have slashes between the strings:
+ BOOST_CHECK_EQUAL( std::string("1") , joined_string );
+
+ get_push_back_filler(parts)("2")("drei");
+
+ joined_string= join_string(parts,"/");
// we should have slashes between the strings:
BOOST_CHECK_EQUAL( std::string("1/2/drei") , joined_string );
} // eo JoinStringVector
+BOOST_AUTO_TEST_CASE(JoinStringSet)
+{
+ std::set< std::string > parts;
+
+ std::string joined_string= join_string(parts,"/");
+ BOOST_CHECK_EQUAL( std::string() , joined_string );
+
+ parts.insert ("foo");
+ joined_string= join_string(parts,"/");
+ BOOST_CHECK_EQUAL( std::string("foo") , joined_string );
+
+ parts.insert ("bar");
+ parts.insert ("baz");
+
+ joined_string= join_string(parts,"/");
+ // we should have slashes between the strings:
+ BOOST_CHECK_EQUAL( std::string("bar/baz/foo") , joined_string );
+
+ parts.insert( std::string() );
+ joined_string= join_string(parts,"/");
+ // now we should have an additional trailing slash:
+ BOOST_CHECK_EQUAL( std::string("/bar/baz/foo") , joined_string );
+} // eo JoinStringSet
+
+
+BOOST_AUTO_TEST_CASE(JoinStringIterSet_Empty)
+{
+ std::set< std::string > parts;
+
+ // empty sequence → empty string
+ BOOST_CHECK_EQUAL(join_string (parts.begin (), parts.end () ), "");
+ BOOST_CHECK_EQUAL(join_string (parts.begin (), parts.end (), "/"), "");
+} // eo JoinStringSet
+
+BOOST_AUTO_TEST_CASE(JoinStringIterSet_One)
+{
+ std::set< std::string > parts;
+
+ parts.insert ("foo");
+
+ // cardinality == 1 → no delimiter
+ BOOST_CHECK_EQUAL(join_string (parts.begin (), parts.end () ), "foo");
+ BOOST_CHECK_EQUAL(join_string (parts.begin (), parts.end (), "/"), "foo");
+} // eo JoinStringSet
+
+BOOST_AUTO_TEST_CASE(JoinStringIterSet)
+{
+ std::set< std::string > parts;
+
+ parts.insert ("foo");
+ parts.insert ("bar");
+ parts.insert ("baz");
+
+ std::string joined_string= join_string(parts.begin (), parts.end (), "/");
+ // we should have slashes between the strings:
+ BOOST_CHECK_EQUAL( std::string("bar/baz/foo") , joined_string );
+
+ parts.insert( std::string() );
+ joined_string= join_string(parts.begin (), parts.end (),"/");
+ // now we should have an additional trailing slash:
+ BOOST_CHECK_EQUAL( std::string("/bar/baz/foo") , joined_string );
+} // eo JoinStringSet
+
+
BOOST_AUTO_TEST_CASE(ConversionStringInt)
{
std::string s1("24");