#include #include #include #include #include #include #include #include #include using namespace XCEngine::Components; namespace { TEST(ComponentFactoryRegistry_Test, BuiltInTypesAreRegistered) { auto& registry = ComponentFactoryRegistry::Get(); EXPECT_TRUE(registry.IsRegistered("Camera")); EXPECT_TRUE(registry.IsRegistered("Light")); EXPECT_TRUE(registry.IsRegistered("AudioSource")); EXPECT_TRUE(registry.IsRegistered("AudioListener")); EXPECT_TRUE(registry.IsRegistered("MeshFilter")); EXPECT_TRUE(registry.IsRegistered("MeshRenderer")); EXPECT_FALSE(registry.IsRegistered("Transform")); EXPECT_FALSE(registry.IsRegistered("MissingComponent")); } TEST(ComponentFactoryRegistry_Test, CreateBuiltInComponentsByTypeName) { GameObject gameObject("FactoryTarget"); auto& registry = ComponentFactoryRegistry::Get(); EXPECT_NE(dynamic_cast(registry.CreateComponent(&gameObject, "Camera")), nullptr); EXPECT_NE(dynamic_cast(registry.CreateComponent(&gameObject, "Light")), nullptr); EXPECT_NE(dynamic_cast(registry.CreateComponent(&gameObject, "AudioSource")), nullptr); EXPECT_NE(dynamic_cast(registry.CreateComponent(&gameObject, "AudioListener")), nullptr); EXPECT_NE(dynamic_cast(registry.CreateComponent(&gameObject, "MeshFilter")), nullptr); EXPECT_NE(dynamic_cast(registry.CreateComponent(&gameObject, "MeshRenderer")), nullptr); EXPECT_EQ(registry.CreateComponent(&gameObject, "MissingComponent"), nullptr); } } // namespace