|
@@ -1,7 +1,9 @@
|
|
|
#include "a2functional.h"
|
|
|
+
|
|
|
+#include <cppunit/extensions/HelperMacros.h>
|
|
|
+
|
|
|
#include <string>
|
|
|
#include <numeric>
|
|
|
-#include <cppunit/extensions/HelperMacros.h>
|
|
|
|
|
|
namespace aria2 {
|
|
|
|
|
@@ -10,11 +12,17 @@ class a2functionalTest:public CppUnit::TestFixture {
|
|
|
CPPUNIT_TEST_SUITE(a2functionalTest);
|
|
|
CPPUNIT_TEST(testMemFunSh);
|
|
|
CPPUNIT_TEST(testAdopt2nd);
|
|
|
+ CPPUNIT_TEST(testStrjoin);
|
|
|
+ CPPUNIT_TEST(testStrconcat);
|
|
|
+ CPPUNIT_TEST(testStrappend);
|
|
|
CPPUNIT_TEST_SUITE_END();
|
|
|
public:
|
|
|
void testMemFunSh();
|
|
|
void testAdopt2nd();
|
|
|
-
|
|
|
+ void testStrjoin();
|
|
|
+ void testStrconcat();
|
|
|
+ void testStrappend();
|
|
|
+
|
|
|
class Greeting {
|
|
|
public:
|
|
|
virtual ~Greeting() {}
|
|
@@ -63,4 +71,33 @@ void a2functionalTest::testAdopt2nd()
|
|
|
adopt2nd(std::plus<std::string>(), mem_fun_sh(&Greeting::sayGreeting))("A Japanese said:", greeting));
|
|
|
}
|
|
|
|
|
|
+void a2functionalTest::testStrjoin()
|
|
|
+{
|
|
|
+ std::vector<std::string> v;
|
|
|
+ CPPUNIT_ASSERT_EQUAL(std::string(""), strjoin(v.begin(), v.end(), " "));
|
|
|
+
|
|
|
+ v.push_back("A");
|
|
|
+
|
|
|
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), strjoin(v.begin(), v.end(), " "));
|
|
|
+
|
|
|
+ v.push_back("hero");
|
|
|
+ v.push_back("is");
|
|
|
+ v.push_back("lonely");
|
|
|
+
|
|
|
+ CPPUNIT_ASSERT_EQUAL(std::string("A hero is lonely"),
|
|
|
+ strjoin(v.begin(), v.end(), " "));
|
|
|
+}
|
|
|
+
|
|
|
+void a2functionalTest::testStrconcat()
|
|
|
+{
|
|
|
+ CPPUNIT_ASSERT_EQUAL(std::string("X=3"), strconcat("X=", "3"));
|
|
|
+}
|
|
|
+
|
|
|
+void a2functionalTest::testStrappend()
|
|
|
+{
|
|
|
+ std::string str = "X=";
|
|
|
+ strappend(str, "3", ",Y=", "5");
|
|
|
+ CPPUNIT_ASSERT_EQUAL(std::string("X=3,Y=5"), str);
|
|
|
+}
|
|
|
+
|
|
|
} // namespace aria2
|