SpCommTest.cpp 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. #include "SimpleString.h"
  2. #include<gtest/gtest.h>
  3. TEST(SimpleStringTest, CharTypeTest)
  4. {
  5. CSimpleStringA s1("123456 7890");
  6. ASSERT_TRUE(s1.GetLength() == 11);
  7. ASSERT_TRUE(s1 == "123456 7890");
  8. ASSERT_TRUE(s1.Compare("123456 7890") == 0);
  9. CSimpleStringA s2("123456 7890123456", 11);
  10. ASSERT_TRUE(s1 == s2);
  11. ASSERT_TRUE(s1.Compare(s2) == 0);
  12. CSimpleStringA dup1(s1);
  13. EXPECT_TRUE(s1 == dup1);
  14. dup1 = "987654321";
  15. EXPECT_TRUE(dup1 == "987654321");
  16. EXPECT_FALSE((dup1 != CSimpleStringA("987654321")));
  17. EXPECT_TRUE(strlen((const CHAR*)dup1) == 9);
  18. CSimpleStringA dup2 = dup1 + s1;
  19. dup1 += s1;
  20. EXPECT_TRUE(dup1.Compare("987654321123456 7890") == 0);
  21. EXPECT_TRUE(dup1 == dup2);
  22. CSimpleStringA n10('n', 10);
  23. ASSERT_TRUE(n10.GetLength() == 10);
  24. ASSERT_TRUE(n10.GetCapability() == 10);
  25. ASSERT_TRUE(n10[9] == 'n');
  26. ASSERT_TRUE(n10[10] == '\0');
  27. n10[9] = 'm';
  28. ASSERT_TRUE(n10[9] == 'm');
  29. ASSERT_TRUE(strcmp(n10.GetData(), (const char*)n10) == 0);
  30. CSimpleStringA empty_str(true);
  31. EXPECT_TRUE(empty_str.IsNullOrEmpty());
  32. auto format_string = CSimpleStringA::Format("hello %s %d", "world", 12345);
  33. EXPECT_TRUE(format_string.Compare("hello world 12345") == 0);
  34. CSimpleStringA c10('c', 10);
  35. format_string.Clear();
  36. ASSERT_TRUE(format_string.IsNullOrEmpty());
  37. ASSERT_TRUE(n10.GetCapability() == 10);
  38. CSimpleStringA str1("123;456;789;1234;12345");
  39. CAutoArray<CSimpleStringA> arrays = str1.Split(';');
  40. ASSERT_TRUE(arrays.GetCount() == 5);
  41. CSimpleStringA str2(" I'm string for trim ");
  42. auto str3 = str2.Trim();
  43. ASSERT_TRUE(str3.Compare("I'm string for trim") == 0);
  44. EXPECT_TRUE(str3.IsStartWith("I'm", false));
  45. EXPECT_FALSE(str3.IsStartWith("i'm", false));
  46. EXPECT_TRUE(str3.IsStartWith("i'm", true));
  47. EXPECT_TRUE(str3.IsEndWith("for trim", false));
  48. EXPECT_FALSE(str3.IsEndWith("foR Trim", false));
  49. EXPECT_TRUE(str3.IsEndWith("foR Trim", true));
  50. EXPECT_TRUE(str3.IndexOf("string") == 4);
  51. EXPECT_TRUE(str3.IndexOf("none") == -1);
  52. CSimpleStringA str4("");
  53. str4 = str4.Append("new string");
  54. ASSERT_TRUE(str4.Compare("new string") == 0);
  55. str4 = str4.Append("append string", strlen("append str"));
  56. ASSERT_TRUE(str4.Compare("new stringappend str") == 0);
  57. CSimpleStringA str5("CompareString");
  58. CSimpleStringA str6("CompareString");
  59. CSimpleStringA str7("compareString");
  60. ASSERT_TRUE(str5.Compare("comparestring", true) == 0);
  61. ASSERT_TRUE(str5.Compare(str6) == 0);
  62. ASSERT_FALSE(str5.Compare(str7) == 0);
  63. ASSERT_TRUE(str5.Compare(str7, true) == 0);
  64. }
  65. #ifdef _WIN32
  66. TEST(SimpleStringTest, WideCharTypeTest)
  67. {
  68. CSimpleStringW s1(L"123456 7890");
  69. ASSERT_TRUE(s1.GetLength() == 11);
  70. ASSERT_TRUE(s1 == L"123456 7890");
  71. ASSERT_TRUE(s1.Compare(L"123456 7890") == 0);
  72. CSimpleStringW s2(L"123456 7890123456", 11);
  73. ASSERT_TRUE(s1 == s2);
  74. ASSERT_TRUE(s1.Compare(s2) == 0);
  75. CSimpleStringW dup1(s1);
  76. EXPECT_TRUE(s1 == dup1);
  77. dup1 = L"987654321";
  78. EXPECT_TRUE(dup1 == L"987654321");
  79. EXPECT_FALSE((dup1 != CSimpleStringW(L"987654321")));
  80. EXPECT_TRUE(wcslen((const WCHAR*)dup1) == 9);
  81. CSimpleStringW dup2 = dup1 + s1;
  82. dup1 += s1;
  83. EXPECT_TRUE(dup1.Compare(L"987654321123456 7890") == 0);
  84. EXPECT_TRUE(dup1 == dup2);
  85. CSimpleStringW n10('n', 10);
  86. ASSERT_TRUE(n10.GetLength() == 10);
  87. ASSERT_TRUE(n10.GetCapability() == 10);
  88. ASSERT_TRUE(n10[9] == 'n');
  89. ASSERT_TRUE(n10[10] == '\0');
  90. n10[9] = 'm';
  91. ASSERT_TRUE(n10[9] == 'm');
  92. ASSERT_TRUE(wcscmp(n10.GetData(), (const WCHAR*)n10) == 0);
  93. CSimpleStringW empty_str(true);
  94. EXPECT_TRUE(empty_str.IsNullOrEmpty());
  95. auto format_string = CSimpleStringW::Format(L"hello %s %d", L"world", 12345);
  96. EXPECT_TRUE(format_string.Compare(L"hello world 12345") == 0);
  97. CSimpleStringW c10('c', 10);
  98. format_string.Clear();
  99. ASSERT_TRUE(format_string.IsNullOrEmpty());
  100. ASSERT_TRUE(n10.GetCapability() == 10);
  101. CSimpleStringW str1(L"123;456;789;1234;12345");
  102. CAutoArray<CSimpleStringW> arrays = str1.Split(';');
  103. ASSERT_TRUE(arrays.GetCount() == 5);
  104. CSimpleStringW str2(L" I'm string for trim ");
  105. auto str3 = str2.Trim();
  106. ASSERT_TRUE(str3.Compare(L"I'm string for trim") == 0);
  107. EXPECT_TRUE(str3.IsStartWith(L"I'm", false));
  108. EXPECT_FALSE(str3.IsStartWith(L"i'm", false));
  109. EXPECT_TRUE(str3.IsStartWith(L"i'm", true));
  110. EXPECT_TRUE(str3.IsEndWith(L"for trim", false));
  111. EXPECT_FALSE(str3.IsEndWith(L"foR Trim", false));
  112. EXPECT_TRUE(str3.IsEndWith(L"foR Trim", true));
  113. EXPECT_TRUE(str3.IndexOf(L"string") == 4);
  114. EXPECT_TRUE(str3.IndexOf(L"none") == -1);
  115. CSimpleStringW str4("");
  116. str4 = str4.Append(L"new string");
  117. ASSERT_TRUE(str4.Compare(L"new string") == 0);
  118. str4 = str4.Append(L"append string", wcslen(L"append str"));
  119. ASSERT_TRUE(str4.Compare(L"new stringappend str") == 0);
  120. CSimpleStringW str5(L"CompareString");
  121. CSimpleStringW str6(L"CompareString");
  122. CSimpleStringW str7(L"compareString");
  123. ASSERT_TRUE(str5.Compare(L"comparestring", true) == 0);
  124. ASSERT_TRUE(str5.Compare(str6) == 0);
  125. ASSERT_FALSE(str5.Compare(str7) == 0);
  126. ASSERT_TRUE(str5.Compare(str7, true) == 0);
  127. }
  128. TEST(SimpleStringTest, WideCharTransferTest)
  129. {
  130. CSimpleStringA str("testString");
  131. CSimpleStringW wstr = CSimpleStringA2W(str);
  132. ASSERT_TRUE(wstr.Compare(L"testString") == 0);
  133. }
  134. #endif //_WIN32