SpUtilityTest.cpp 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "SpUtility.h"
  2. #include<gtest/gtest.h>
  3. TEST(StringTest, MISCTest)
  4. {
  5. std::string str = "Hello Client!";
  6. ASSERT_TRUE(SP::Utility::IsStartWith(str, "Hello "));
  7. ASSERT_FALSE(SP::Utility::IsStartWith(str, "hello "));
  8. ASSERT_TRUE(SP::Utility::IsStartWith(str, 'H'));
  9. ASSERT_FALSE(SP::Utility::IsStartWith(str, 'e'));
  10. ASSERT_TRUE(SP::Utility::IsEndWith(str, " Client!"));
  11. ASSERT_TRUE(SP::Utility::IsEndWith(str, "!"));
  12. ASSERT_FALSE(SP::Utility::IsEndWith(str, " Clien"));
  13. ASSERT_TRUE(SP::Utility::IsEndWith(str, '!'));
  14. ASSERT_FALSE(SP::Utility::IsEndWith(str, 'd'));
  15. ASSERT_TRUE(SP::Utility::IsContains(str, "llo Cli"));
  16. ASSERT_FALSE(SP::Utility::IsContains(str, "Server"));
  17. std::string str1 = " Hello Client!\t";
  18. ASSERT_TRUE(SP::Utility::ToTrim(str1).compare(str) == 0);
  19. std::string str2 = "Hello Client, and Hello Server";
  20. ASSERT_TRUE(SP::Utility::replaceInPlace(str2, "Hello", "Please"));
  21. std::cout << str2 << std::endl;
  22. ASSERT_TRUE(str2.compare("Please Client, and Please Server") == 0);
  23. ASSERT_FALSE(SP::Utility::replaceInPlace(str2, "Hello", "Please"));
  24. std::cout << str2 << std::endl;
  25. }
  26. TEST(StringTest, HexSwitchTest)
  27. {
  28. char byt[] = "ABC";
  29. std::string res = SP::Utility::Bytes2HexStr(byt, 3);
  30. std::cout << "HexString: " << res << std::endl;
  31. char* ret = SP::Utility::HexStr2Bytes(res);
  32. ASSERT_TRUE(ret != NULL);
  33. ASSERT_TRUE(strlen(ret) == 3);
  34. ASSERT_TRUE(ret[0] = 'A');
  35. ASSERT_TRUE(ret[0] = 'B');
  36. ASSERT_TRUE(ret[0] = 'C');
  37. delete[] ret;
  38. }
  39. TEST(StringTest, SPlitTest)
  40. {
  41. std::string str("123 456 hello 789 keshi who ambition");
  42. auto result = SP::Utility::Split(str, ' ');
  43. ASSERT_TRUE(result.size() == 7);
  44. ASSERT_TRUE(result[2] == "hello");
  45. ASSERT_TRUE(result[6] == "ambition");
  46. }
  47. TEST(StringTest, UpperTest)
  48. {
  49. std::string test_string = SP::Utility::ToLower("What$* THE FU*K");
  50. ASSERT_TRUE(test_string.compare("what$* the fu*k") == 0);
  51. test_string = SP::Utility::ToUpper("What$* ThE fu*k");
  52. ASSERT_TRUE(test_string.compare("WHAT$* THE FU*K") == 0);
  53. EXPECT_FALSE(SP::Utility::ToLower("").compare(""));
  54. EXPECT_FALSE(SP::Utility::ToUpper("").compare(""));
  55. }
  56. TEST(StringTest, WideChar2CharTest)
  57. {
  58. std::wstring str = L"Who am I, 1234567890, !@#$%^&*()_+}{:\"';'";
  59. std::string str1 = SP::Utility::W2S(str);
  60. std::cout << str1 << std::endl;
  61. std::wstring str2 = SP::Utility::S2W(str1);
  62. ASSERT_TRUE(str2.compare(str) == 0);
  63. }
  64. TEST(StringTest, GBK25UTF8Test)
  65. {
  66. std::string str = "ÎÒÃÇÊǹ²²úÖ÷Òå½Ó°àÈËWho am I, 1234567890, !@#$%^&*()_+}{:\"';'";
  67. std::string str1 = SP::Utility::GBK2UTF8(str);
  68. std::string str2 = SP::Utility::UTF8ToGBK(str1);
  69. std::string str3 = SP::Utility::GBK2UTF8(str2);
  70. ASSERT_TRUE(str1.compare(str3) == 0);
  71. ASSERT_TRUE(str2.compare(str) == 0);
  72. }