Create unit tests for new shorten_stl_types
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Tue, 24 Jan 2017 09:54:17 +0000 (10:54 +0100)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Thu, 23 Mar 2017 09:21:23 +0000 (10:21 +0100)
test/stringfunc.cpp

index c5becbf..bf33781 100644 (file)
@@ -801,4 +801,52 @@ BOOST_AUTO_TEST_CASE(remove_html_comments_test)
     BOOST_CHECK_EQUAL(text, "test");
 }
 
+BOOST_AUTO_TEST_CASE(shorten_stl_types_string)
+{
+    BOOST_CHECK_EQUAL(shorten_stl_types("std::basic_string<char, std::char_traits<char>, std::allocator<char> >"),
+                      "std::string");
+}
+
+BOOST_AUTO_TEST_CASE(shorten_stl_types_simple)
+{
+    BOOST_CHECK_EQUAL(shorten_stl_types("std::list<some_type, std::allocator<some_type> >"),
+                      "std::list<some_type, _alloc_>");
+}
+
+BOOST_AUTO_TEST_CASE(shorten_stl_types_multiple)
+{
+    BOOST_CHECK_EQUAL(shorten_stl_types("std::basic_string<char, std::char_traits<char>, std::allocator<char> > my_func(std::list<some_type, std::allocator<some_type> >, std::vector<int, std::allocator<int> >)"),
+                      "std::string my_func(std::list<some_type, _alloc_>, std::vector<int, _alloc_>)");
+}
+
+BOOST_AUTO_TEST_CASE(shorten_stl_types_complex)
+{
+    BOOST_CHECK_EQUAL(shorten_stl_types("std::list<boost::shared_ptr<some_type>, std::allocator<boost::shared_ptr<some_type> > >"),
+                      "std::list<boost::shared_ptr<some_type>, _alloc_>");
+}
+
+BOOST_AUTO_TEST_CASE(shorten_stl_types_nested)
+{
+              //"std::list<int, std::allocator<int> >"
+    //"std::list<std::list<int, std::allocator<int> >, std::allocator<std::list<int, std::allocator<int> > > >"
+    BOOST_CHECK_EQUAL(shorten_stl_types("std::list<std::list<int, std::allocator<int> >, std::allocator<std::list<int, std::allocator<int> > > >"),
+                      "std::list<std::list<int, _alloc_>, _alloc_>");
+}
+
+BOOST_AUTO_TEST_CASE(shorten_stl_types_nothing)
+{
+    string text = "";
+    BOOST_CHECK_EQUAL(shorten_stl_types(text), text);
+    text = "int f(void)";
+    BOOST_CHECK_EQUAL(shorten_stl_types(text), text);
+    text = "std::cout << \"Test\" << std::endl;";
+    BOOST_CHECK_EQUAL(shorten_stl_types(text), text);
+    text = "bla<blubb>";
+    BOOST_CHECK_EQUAL(shorten_stl_types(text), text);
+    text = "std::list<> is a class template";
+    BOOST_CHECK_EQUAL(shorten_stl_types(text), text);
+    text = "std::list<int, std::allocator<int>\n>";
+    BOOST_CHECK_EQUAL(shorten_stl_types(text), text);
+}
+
 BOOST_AUTO_TEST_SUITE_END()