Browse Source

Add SDL init error hint

Patrick-Christopher Mattulat 1 tuần trước cách đây
mục cha
commit
94303aab53
2 tập tin đã thay đổi với 9 bổ sung1 xóa
  1. 1 0
      source/window/SdlWindowApi.cpp
  2. 8 1
      test/window/SdlWindowApiTest.cpp

+ 1 - 0
source/window/SdlWindowApi.cpp

@@ -70,6 +70,7 @@ shared_ptr<AStatusCode> SdlWindowApi::_initApi() const
   if (!sdlApi->Init(SDL_INIT_VIDEO))
   {
     statusCode = make_shared<StatusCodeWindowApiLoadingFailed>();
+    statusCode->addHint(sdlApi->GetError());
   }
 
   return statusCode;

+ 8 - 1
test/window/SdlWindowApiTest.cpp

@@ -57,10 +57,17 @@ namespace
 
   TEST_F(SdlWindowApiTest, init_failed)
   {
+    const string hint = "Upsi Dupsi";
+
     EXPECT_CALL(*sdlApiMock, Init(SDL_INIT_VIDEO)).WillOnce(Return(0));
+    EXPECT_CALL(*sdlApiMock, GetError()).WillOnce(Return(hint.c_str()));
     EXPECT_CALL(*sdlApiMock, Quit());
 
-    ASSERT_EQ(StatusCodes::WINDOW_API_LOADING_FAILED, SdlWindowApi(sdlApiMock).init()->getId());
+    const shared_ptr<AStatusCode> statusCode = SdlWindowApi(sdlApiMock).init();
+
+    ASSERT_EQ(StatusCodes::WINDOW_API_LOADING_FAILED, statusCode->getId());
+    ASSERT_EQ(1, statusCode->getHints().size());
+    ASSERT_STREQ(hint.c_str(), statusCode->getHints()[0].c_str());
   }
 
   TEST_F(SdlWindowApiTest, init_windowCreationFailed)