#include "fixtures/OpenGLTestFixture.h" #include "XCEngine/RHI/OpenGL/OpenGLDevice.h" using namespace XCEngine::RHI; TEST_F(OpenGLTestFixture, Device_CreateRenderWindow_ValidParams) { OpenGLDevice device; bool result = device.CreateRenderWindow(800, 600, "Test Window", false); ASSERT_TRUE(result); ASSERT_NE(device.GetWindow(), nullptr); } TEST_F(OpenGLTestFixture, Device_CreateRenderWindow_DebugMode) { OpenGLDevice device; bool result = device.CreateRenderWindow(640, 480, "Debug Window", true); ASSERT_TRUE(result); ASSERT_NE(device.GetWindow(), nullptr); } TEST_F(OpenGLTestFixture, Device_InitializeWithExistingWindow) { OpenGLDevice device; GLFWwindow* existingWindow = GetWindow(); bool result = device.InitializeWithExistingWindow(existingWindow); ASSERT_TRUE(result); ASSERT_EQ(device.GetWindow(), existingWindow); } TEST_F(OpenGLTestFixture, Device_GetDeviceInfo_ReturnsValid) { OpenGLDevice device; device.CreateRenderWindow(800, 600, "Test", false); const auto& info = device.GetDeviceInfo(); EXPECT_FALSE(info.vendor.empty()); EXPECT_FALSE(info.renderer.empty()); EXPECT_GE(info.majorVersion, 3); EXPECT_GE(info.minorVersion, 0); } TEST_F(OpenGLTestFixture, Device_SwapBuffers_NoErrors) { OpenGLDevice device; device.CreateRenderWindow(800, 600, "Test", false); device.SwapBuffers(); GLenum error = glGetError(); EXPECT_EQ(error, GL_NO_ERROR); } TEST_F(OpenGLTestFixture, Device_PollEvents_ReturnsTrue) { OpenGLDevice device; device.CreateRenderWindow(800, 600, "Test", false); bool result = device.PollEvents(); EXPECT_TRUE(result); }