UtilTest.cc 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "Util.h"
  2. #include <string>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. using namespace std;
  5. class UtilTest:public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(UtilTest);
  7. CPPUNIT_TEST(testTrim);
  8. CPPUNIT_TEST(testSplit);
  9. CPPUNIT_TEST(testSlice);
  10. CPPUNIT_TEST_SUITE_END();
  11. private:
  12. public:
  13. void setUp() {
  14. }
  15. void testTrim();
  16. void testSplit();
  17. void testSlice();
  18. };
  19. CPPUNIT_TEST_SUITE_REGISTRATION( UtilTest );
  20. void UtilTest::testTrim() {
  21. string str1 = "aria2";
  22. CPPUNIT_ASSERT_EQUAL(str1, Util::trim("aria2"));
  23. CPPUNIT_ASSERT_EQUAL(str1, Util::trim(" aria2"));
  24. CPPUNIT_ASSERT_EQUAL(str1, Util::trim(" aria2 "));
  25. CPPUNIT_ASSERT_EQUAL(str1, Util::trim(" aria2 "));
  26. string str2 = "aria2 debut";
  27. CPPUNIT_ASSERT_EQUAL(str2, Util::trim("aria2 debut"));
  28. CPPUNIT_ASSERT_EQUAL(str2, Util::trim(" aria2 debut "));
  29. string str3 = "";
  30. CPPUNIT_ASSERT_EQUAL(str3, Util::trim(""));
  31. CPPUNIT_ASSERT_EQUAL(str3, Util::trim(" "));
  32. CPPUNIT_ASSERT_EQUAL(str3, Util::trim(" "));
  33. string str4 = "A";
  34. CPPUNIT_ASSERT_EQUAL(str4, Util::trim("A"));
  35. CPPUNIT_ASSERT_EQUAL(str4, Util::trim(" A "));
  36. CPPUNIT_ASSERT_EQUAL(str4, Util::trim(" A "));
  37. }
  38. void UtilTest::testSplit() {
  39. pair<string, string> p1;
  40. Util::split(p1, "name=value", '=');
  41. CPPUNIT_ASSERT_EQUAL(string("name"), p1.first);
  42. CPPUNIT_ASSERT_EQUAL(string("value"), p1.second);
  43. Util::split(p1, " name = value ", '=');
  44. CPPUNIT_ASSERT_EQUAL(string("name"), p1.first);
  45. CPPUNIT_ASSERT_EQUAL(string("value"), p1.second);
  46. Util::split(p1, "=value", '=');
  47. CPPUNIT_ASSERT_EQUAL(string(""), p1.first);
  48. CPPUNIT_ASSERT_EQUAL(string("value"), p1.second);
  49. Util::split(p1, "name=", '=');
  50. CPPUNIT_ASSERT_EQUAL(string("name"), p1.first);
  51. CPPUNIT_ASSERT_EQUAL(string(""), p1.second);
  52. Util::split(p1, "name", '=');
  53. CPPUNIT_ASSERT_EQUAL(string("name"), p1.first);
  54. CPPUNIT_ASSERT_EQUAL(string(""), p1.second);
  55. }
  56. void UtilTest::testSlice() {
  57. vector<string> v1;
  58. Util::slice(v1, "name1=value1; name2=value2; name3=value3;", ';');
  59. CPPUNIT_ASSERT_EQUAL(3, (int)v1.size());
  60. v1.clear();
  61. Util::slice(v1, "name1=value1; name2=value2; name3=value3", ';');
  62. CPPUNIT_ASSERT_EQUAL(3, (int)v1.size());
  63. vector<string>::iterator itr = v1.begin();
  64. CPPUNIT_ASSERT_EQUAL(string("name1=value1"), *itr++);
  65. CPPUNIT_ASSERT_EQUAL(string("name2=value2"), *itr++);
  66. CPPUNIT_ASSERT_EQUAL(string("name3=value3"), *itr++);
  67. }