test: a few more tests for meta_handle

This commit is contained in:
Michele Caini
2022-10-13 09:37:13 +02:00
parent 0a61de4a09
commit b6155080b2

View File

@@ -39,19 +39,28 @@ TEST_F(MetaHandle, Functionalities) {
clazz_t instance{};
entt::meta_handle handle{};
entt::meta_handle chandle{};
ASSERT_FALSE(handle);
ASSERT_FALSE(chandle);
handle = entt::meta_handle{instance};
chandle = entt::meta_handle{std::as_const(instance)};
ASSERT_TRUE(handle);
ASSERT_TRUE(chandle);
ASSERT_TRUE(handle->invoke("incr"_hs));
ASSERT_FALSE(chandle->invoke("incr"_hs));
ASSERT_FALSE(std::as_const(handle)->invoke("incr"_hs));
ASSERT_EQ(instance.value, 1);
auto any = entt::forward_as_meta(instance);
handle = entt::meta_handle{any};
chandle = entt::meta_handle{std::as_const(any)};
ASSERT_FALSE(std::as_const(handle)->invoke("decr"_hs));
ASSERT_TRUE(handle->invoke("decr"_hs));
ASSERT_FALSE(chandle->invoke("decr"_hs));
ASSERT_FALSE(std::as_const(handle)->invoke("decr"_hs));
ASSERT_EQ(instance.value, 0);
}