helper.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include <gtest/gtest.h>
  2. #include <entt/core/hashed_string.hpp>
  3. #include <entt/entity/helper.hpp>
  4. #include <entt/entity/entity.hpp>
  5. #include <entt/entity/registry.hpp>
  6. #include <entt/core/type_traits.hpp>
  7. struct clazz {
  8. void func(entt::registry &, entt::entity curr) { entt = curr; }
  9. entt::entity entt{entt::null};
  10. };
  11. TEST(Helper, AsView) {
  12. entt::registry registry;
  13. const entt::registry cregistry;
  14. ([](entt::view<entt::exclude_t<>, int>) {})(entt::as_view{registry});
  15. ([](entt::view<entt::exclude_t<int>, char, double>) {})(entt::as_view{registry});
  16. ([](entt::view<entt::exclude_t<int>, const char, double>) {})(entt::as_view{registry});
  17. ([](entt::view<entt::exclude_t<int>, const char, const double>) {})(entt::as_view{registry});
  18. }
  19. TEST(Helper, AsGroup) {
  20. entt::registry registry;
  21. const entt::registry cregistry;
  22. ([](entt::group<entt::exclude_t<int>, entt::get_t<char>, double>) {})(entt::as_group{registry});
  23. ([](entt::group<entt::exclude_t<int>, entt::get_t<const char>, double>) {})(entt::as_group{registry});
  24. ([](entt::group<entt::exclude_t<int>, entt::get_t<const char>, const double>) {})(entt::as_group{registry});
  25. }
  26. TEST(Invoke, MemberFunction) {
  27. entt::registry registry;
  28. const auto entity = registry.create();
  29. registry.on_construct<clazz>().connect<entt::invoke<&clazz::func>>();
  30. registry.emplace<clazz>(entity);
  31. ASSERT_EQ(entity, registry.get<clazz>(entity).entt);
  32. }