diff --git a/test/entt/entity/registry.cpp b/test/entt/entity/registry.cpp index 4af012471..674d7e00c 100644 --- a/test/entt/entity/registry.cpp +++ b/test/entt/entity/registry.cpp @@ -1506,15 +1506,27 @@ TEST(Registry, Get) { TEST(Registry, GetOrEmplace) { entt::registry registry{}; const auto entity = registry.create(); - const auto value = registry.get_or_emplace(entity, 3); + const auto value = 3; + const auto other = 1.; + + ASSERT_EQ(registry.get_or_emplace(entity, value), value); + ASSERT_EQ(registry.get_or_emplace(entity, other), other); + + ASSERT_TRUE((registry.all_of(entity))); + + ASSERT_EQ(registry.get(entity), value); + ASSERT_EQ(registry.get(entity), other); +} + +TEST(Registry, GetOrEmplaceEmpty) { + entt::registry registry{}; + const auto entity = registry.create(); // get_or_emplace must work for empty types // NOLINTNEXTLINE(readability-redundant-casting) static_cast(registry.get_or_emplace(entity)); - ASSERT_TRUE((registry.all_of(entity))); - ASSERT_EQ(registry.get(entity), value); - ASSERT_EQ(registry.get(entity), 3); + ASSERT_TRUE((registry.all_of(entity))); } ENTT_DEBUG_TEST(RegistryDeathTest, GetOrEmplace) {