From d4eab0546f569efad1683d379f9993b9dd6a7669 Mon Sep 17 00:00:00 2001 From: Gama Date: Thu, 1 Oct 2020 15:19:53 +0300 Subject: [PATCH] PIStringList Tests --- tests/core/piStringListTest.cpp | 316 ++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 tests/core/piStringListTest.cpp diff --git a/tests/core/piStringListTest.cpp b/tests/core/piStringListTest.cpp new file mode 100644 index 00000000..42b54df8 --- /dev/null +++ b/tests/core/piStringListTest.cpp @@ -0,0 +1,316 @@ +#include "gtest/gtest.h" +#include "pistringlist.h" + +using namespace std; + +TEST(PIStringList_Tests, construct_empty){ + PIStringList lis; + ASSERT_TRUE(lis.isEmpty()); +} + +TEST(PIStringList_Tests, construct_one_str){ + PIString str1 = "first string"; + PIStringList lis {str1}; + ASSERT_TRUE(str1 == lis[0] && lis.length() == 1); +} + +TEST(PIStringList_Tests, construct_one_str_rvalue){ + PIString str1 = "first string"; + PIStringList lis {"first string"}; + ASSERT_TRUE(str1 == lis[0] && lis.length() == 1); +} + +TEST(PIStringList_Tests, construct_two_str){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIStringList lis {str1, str2}; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis.length() == 2); +} + +TEST(PIStringList_Tests, construct_two_str_rvalue){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIStringList lis {"first string", "second string"}; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis.length() == 2); +} + +TEST(PIStringList_Tests, construct_three_str){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIStringList lis {str1, str2, str3}; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis[2] == str3 && lis.length() == 3); +} + +TEST(PIStringList_Tests, construct_three_str_rvalue){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIStringList lis {"first string", "second string", "third string"}; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis[2] == str3 && lis.length() == 3); +} + +TEST(PIStringList_Tests, construct_four_str){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis[2] == str3 && lis[3] == str4 && lis.length() == 4); +} + +TEST(PIStringList_Tests, construct_four_str_rvalue){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {"first string", "second string", "third string", "fourth string"}; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis[2] == str3 && lis[3] == str4 && lis.length() == 4); +} + +TEST(PIStringList_Tests, construct_list){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + PIStringList list {lis}; + ASSERT_TRUE(str1 == list[0] && list[1] == str2 && list[2] == str3 && list[3] == str4 && list.length() == 4); +} + +TEST(PIStringList_Tests, construct_list_rvalue){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {"first string", "second string", "third string", "fourth string"}; + PIStringList list {move(lis)}; + ASSERT_TRUE(str1 == list[0] && list[1] == str2 && list[2] == str3 && list[3] == str4 && list.length() == 4); +} + +TEST(PIStringList_Tests, construct_pivect){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIVector vect; + vect.append(str1); + vect.append(str2); + vect.append(str3); + vect.append(str4); + PIStringList list {vect}; + ASSERT_TRUE(str1 == list[0] && list[1] == str2 && list[2] == str3 && list[3] == str4 && list.length() == 4); +} + +TEST(PIStringList_Tests, construct_list_pideq){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIDeque deq; + deq.append(str1); + deq.append(str2); + deq.append(str3); + deq.append(str4); + PIStringList list {deq}; + ASSERT_TRUE(str1 == list[0] && list[1] == str2 && list[2] == str3 && list[3] == str4 && list.length() == 4); +} + +TEST(PIStringList_Tests, join){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIString del = ", "; + PIStringList lis {str1, str2, str3, str4}; + ASSERT_TRUE(lis.join(del) == "first string, second string, third string, fourth string"); +} + +TEST(PIStringList_Tests, remove_strings){ + PIString str1 = "first string"; + PIString str2 = "string"; + PIString str3 = "third string"; + PIString str4 = "string"; + PIString val = "string"; + PIStringList lis {str1, str2, str3, str4}; + lis.removeStrings(val); + ASSERT_TRUE(lis[0] == "first string" && lis[1] == "third string" && lis.length() == 2); +} + +TEST(PIStringList_Tests, remove){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + lis.remove(2); + ASSERT_TRUE(lis[0] == "first string" && lis[1] == "second string" && lis[2] == "fourth string" && lis.length() == 3); +} + +TEST(PIStringList_Tests, remove_count){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + lis.remove(2,2); + ASSERT_TRUE(lis[0] == "first string" && lis[1] == "second string" && lis.length() == 2); +} + +TEST(PIStringList_Tests, remove_Duplicates){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "first string"; + PIString str4 = "second string"; + PIStringList lis {str1, str2, str3, str4}; + lis.removeDuplicates(); + ASSERT_TRUE(lis[0] == "first string" && lis[1] == "second string" && lis.length() == 2); +} + +TEST(PIStringList_Tests, trim){ + PIString str1 = " first string "; + PIString str2 = "second string "; + PIString str3 = " third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + lis.trim(); + ASSERT_TRUE(lis[0] == "first string" && lis[1] == "second string" && lis[2] == "third string" && lis[3] == "fourth string" && lis.length() == 4); +} + +TEST(PIStringList_Tests, content_size){ + PIString str1 = " first string "; + PIString str2 = "second string "; + PIString str3 = " third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + ASSERT_TRUE(lis.contentSize() == 54); +} + +TEST(PIStringList_Tests, operator_compare){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + PIStringList lis1 {"first string", "second string", "third string", "fourth string"}; + ASSERT_TRUE(lis == lis1); +} + +TEST(PIStringList_Tests, operator_compare_false){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "thord string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + PIStringList lis1 {"first string", "second string", "third string", "fourth string"}; + ASSERT_FALSE(lis == lis1); +} + +TEST(PIStringList_Tests, operator_compare_size){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3}; + PIStringList lis1 {"first string", "second string", "third string", "fourth string"}; + ASSERT_FALSE(lis == lis1); +} + +TEST(PIStringList_Tests, operator_compare_unequal + +){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + PIStringList lis1 {"first string", "second string", "third string", "fourth string"}; + ASSERT_FALSE(lis != lis1); +} + +TEST(PIStringList_Tests, operator_compare_unequal_false){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "thord string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + PIStringList lis1 {"first string", "second string", "third string", "fourth string"}; + ASSERT_TRUE(lis != lis1); +} + +TEST(PIStringList_Tests, operator_compare_unequal_size){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "third string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3}; + PIStringList lis1 {"first string", "second string", "third string", "fourth string"}; + ASSERT_TRUE(lis != lis1); +} + +TEST(PIStringList_Tests, operator_assignment){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "thord string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3, str4}; + PIStringList lis1 = lis; + ASSERT_TRUE(str1 == lis1[0] && lis1[1] == str2 && lis1[2] == str3 && lis1[3] == str4 && lis1.length() == 4); +} + +TEST(PIStringList_Tests, operator_shift){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "thord string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3}; + lis << str4; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis[2] == str3 && lis[3] == str4 && lis.length() == 4); +} + +TEST(PIStringList_Tests, operator_shift_rvalue){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "thord string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2, str3}; + lis << "fourth string"; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis[2] == str3 && lis[3] == str4 && lis.length() == 4); +} + +TEST(PIStringList_Tests, operator_shift_pistringlist){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIString str3 = "thord string"; + PIString str4 = "fourth string"; + PIStringList lis {str1, str2}; + PIStringList lis1 {str3, str4}; + lis << lis1; + ASSERT_TRUE(str1 == lis[0] && lis[1] == str2 && lis[2] == str3 && lis[3] == str4 && lis.length() == 4); +} + +TEST(PIStringList_Tests, operator_shift_pibytearray){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIStringList lis {str1, str2}; + PIByteArray arr; + arr << lis; + PIByteArray res[] = {2, 0, 0, 0, 12, 0, 0, 0, 102, 0, 105, 0, 114, 0, 115, 0, 116, 0, 32, 0, 115, 0, 116, 0, 114, 0, 105, 0, 110, 0, 103, 0, + 13, 0, 0, 0, 115, 0, 101, 0, 99, 0, 111, 0, 110, 0, 100, 0, 32, 0, 115, 0, 116, 0, 114, 0, 105, 0, 110, 0, 103, 0}; + bool fl = true; + for(size_t x = 0; x < arr.length(); x++) { + if(res[x] != arr[x]) fl = false; + } + ASSERT_TRUE(fl); +} + +TEST(PIStringList_Tests, operator_shift_right_pibytearray){ + PIString str1 = "first string"; + PIString str2 = "second string"; + PIStringList res {str1, str2}; + PIByteArray arr; + arr << res; + PIStringList list; + arr >> list; + ASSERT_TRUE(res == list); +}