Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

120 řádky
3.7 KiB

  1. #include <gtest/gtest.h>
  2. #include <cpputils/misc/string.h>
  3. #include <cpputils/container/handle_manager.h>
  4. using namespace utl;
  5. using handle_manager_int = utl::handle_manager<int>;
  6. TEST(handle_manager_tests, from_string_to_string)
  7. {
  8. handle h;
  9. EXPECT_FALSE(try_from_string("11-22-3344-5566778", h));
  10. EXPECT_TRUE (try_from_string("11-22-3344-55667788", h));
  11. EXPECT_EQ (std::string("11-22-3344-55667788"), to_string(h));
  12. EXPECT_TRUE (try_from_string("1122-3344-55667788", h));
  13. EXPECT_EQ (std::string("11-22-3344-55667788"), to_string(h));
  14. EXPECT_TRUE (try_from_string("11-223344-55667788", h));
  15. EXPECT_EQ (std::string("11-22-3344-55667788"), to_string(h));
  16. EXPECT_TRUE (try_from_string("11-22-334455667788", h));
  17. EXPECT_EQ (std::string("11-22-3344-55667788"), to_string(h));
  18. EXPECT_TRUE (try_from_string("1122334455667788", h));
  19. EXPECT_EQ (std::string("11-22-3344-55667788"), to_string(h));
  20. }
  21. TEST(handle_manager_tests, insert)
  22. {
  23. handle_manager_int manager;
  24. auto handle = manager.insert(0, 0, 123);
  25. EXPECT_TRUE(static_cast<bool>(handle));
  26. }
  27. TEST(handle_manager_tests, remove)
  28. {
  29. handle_manager_int manager;
  30. auto handle = manager.insert(0, 0, 123);
  31. EXPECT_FALSE(manager.remove(156161));
  32. EXPECT_FALSE(manager.remove(1136));
  33. EXPECT_FALSE(manager.remove(627624));
  34. EXPECT_FALSE(manager.remove(0));
  35. EXPECT_TRUE (manager.remove(handle));
  36. }
  37. TEST(handle_manager_tests, clear)
  38. {
  39. handle_manager_int manager;
  40. auto handle1 = manager.insert(0, 0, 123);
  41. manager.clear();
  42. auto handle2 = manager.insert(0, 0, 555);
  43. EXPECT_EQ(handle1, handle2);
  44. }
  45. TEST(handle_manager_tests, is_valid)
  46. {
  47. handle_manager_int manager;
  48. EXPECT_FALSE(manager.is_valid(0));
  49. EXPECT_FALSE(manager.is_valid(123));
  50. EXPECT_FALSE(manager.is_valid(51627));
  51. EXPECT_FALSE(manager.is_valid(1513));
  52. EXPECT_FALSE(manager.is_valid(16621));
  53. auto handle = manager.insert(0, 0, 123);
  54. EXPECT_TRUE(manager.is_valid(handle));
  55. }
  56. TEST(handle_manager_tests, try_get)
  57. {
  58. int val;
  59. handle_manager_int manager;
  60. EXPECT_FALSE(manager.try_get(123, val));
  61. EXPECT_FALSE(manager.try_get(5132, val));
  62. EXPECT_FALSE(manager.try_get(6216, val));
  63. EXPECT_FALSE(manager.try_get(15616724, val));
  64. EXPECT_FALSE(manager.try_get(12353, val));
  65. auto handle = manager.insert(1, 2, 555);
  66. EXPECT_TRUE(manager.try_get(handle, val));
  67. EXPECT_EQ (555, val);
  68. }
  69. TEST(handle_manager_tests, get)
  70. {
  71. handle_manager_int manager;
  72. EXPECT_ANY_THROW(manager.get(123));
  73. EXPECT_ANY_THROW(manager.get(5132));
  74. EXPECT_ANY_THROW(manager.get(6216));
  75. EXPECT_ANY_THROW(manager.get(15616724));
  76. EXPECT_ANY_THROW(manager.get(12353));
  77. auto handle = manager.insert(1, 2, 555);
  78. EXPECT_EQ(555, manager.get(handle));
  79. }
  80. TEST(handle_manager_tests, update)
  81. {
  82. handle_manager_int manager;
  83. EXPECT_FALSE(manager.update(123, 555));
  84. EXPECT_FALSE(manager.update(5132, 555));
  85. EXPECT_FALSE(manager.update(6216, 555));
  86. EXPECT_FALSE(manager.update(15616724, 555));
  87. EXPECT_FALSE(manager.update(12353, 555));
  88. auto handle = manager.insert(1, 2, 555);
  89. EXPECT_TRUE(manager.update(handle, 554));
  90. EXPECT_EQ (554, manager.get(handle));
  91. }
  92. TEST(handle_manager_tests, set)
  93. {
  94. handle_manager_int manager;
  95. auto handle = from_string<utl::handle>("00-00-0001-00000000");
  96. EXPECT_TRUE (manager.set(handle, 555));
  97. EXPECT_EQ (555, manager.get(handle));
  98. handle = from_string<utl::handle>("00-00-0001-00000000");
  99. EXPECT_TRUE (manager.set(handle, 554));
  100. EXPECT_EQ (554, manager.get(handle));
  101. EXPECT_FALSE(manager.set(from_string<utl::handle>("00-00-0002-00000000"), 553));
  102. EXPECT_EQ (554, manager.get(handle));
  103. }