tag_handler.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include <gtest/gtest.h>
  2. #include <tag_handler.hpp>
  3. TEST(TagHandler, Functionalities) {
  4. using TagHandler = entt::TagHandler<unsigned int, int>;
  5. TagHandler handler;
  6. ASSERT_TRUE(handler.empty());
  7. ASSERT_EQ(handler.size(), 0u);
  8. ASSERT_EQ(handler.begin(), handler.end());
  9. ASSERT_FALSE(handler.has(0));
  10. ASSERT_FALSE(handler.has(1));
  11. ASSERT_EQ(handler.construct(0, 42), 42);
  12. ASSERT_FALSE(handler.empty());
  13. ASSERT_EQ(handler.size(), 1u);
  14. ASSERT_NE(handler.begin(), handler.end());
  15. ASSERT_TRUE(handler.has(0));
  16. ASSERT_FALSE(handler.has(1));
  17. auto begin = handler.begin();
  18. ASSERT_EQ(*begin, 42);
  19. ASSERT_EQ(handler.get(0), 42);
  20. ASSERT_EQ(++begin, handler.end());
  21. handler.destroy(0);
  22. ASSERT_TRUE(handler.empty());
  23. ASSERT_EQ(handler.size(), 0u);
  24. ASSERT_EQ(handler.begin(), handler.end());
  25. ASSERT_FALSE(handler.has(0));
  26. ASSERT_FALSE(handler.has(1));
  27. ASSERT_EQ(handler.construct(0, 12), 12);
  28. handler.reset();
  29. ASSERT_TRUE(handler.empty());
  30. ASSERT_EQ(handler.size(), 0u);
  31. ASSERT_EQ(handler.begin(), handler.end());
  32. ASSERT_FALSE(handler.has(0));
  33. ASSERT_FALSE(handler.has(1));
  34. }