diff --git a/interfaces/innerkits/native_cpp/test/unittest/screensinktest/BUILD.gn b/interfaces/innerkits/native_cpp/test/unittest/screensinktest/BUILD.gn index ae81ebc8337f2e7ae1220e9088d36521f37e1d9e..33e0c875ad0c8c4b62d3135455338bdc56cd395a 100644 --- a/interfaces/innerkits/native_cpp/test/unittest/screensinktest/BUILD.gn +++ b/interfaces/innerkits/native_cpp/test/unittest/screensinktest/BUILD.gn @@ -53,7 +53,10 @@ ohos_unittest("ScreenSinkTest") { "//third_party/googletest:gtest_main", ] - external_deps = [ "c_utils:utils" ] + external_deps = [ + "c_utils:utils", + "samgr:samgr_proxy", + ] } group("screen_sink_test") { diff --git a/interfaces/innerkits/native_cpp/test/unittest/screensinktest/src/dscreen_sink_handler_test.cpp b/interfaces/innerkits/native_cpp/test/unittest/screensinktest/src/dscreen_sink_handler_test.cpp index 7fa8be8788f22923c77257c6ce9d87641d44a20d..f6d927560d3dd1b9a41bcdf98cbabc54d39a1350 100644 --- a/interfaces/innerkits/native_cpp/test/unittest/screensinktest/src/dscreen_sink_handler_test.cpp +++ b/interfaces/innerkits/native_cpp/test/unittest/screensinktest/src/dscreen_sink_handler_test.cpp @@ -35,6 +35,7 @@ void DScreenSinkHandlerTest::TearDown(void) { DScreenSinkHandler::GetInstance().ReleaseSink(); } + /** * @tc.name: LocalHardware_001 * @tc.desc: Verify the SubscribeLocalHardware function. @@ -47,8 +48,33 @@ HWTEST_F(DScreenSinkHandlerTest, LocalHardware_001, TestSize.Level1) const std::string param = "DScreenSinkHandlerTest"; int32_t ret = DScreenSinkHandler::GetInstance().SubscribeLocalHardware(dhId, param); EXPECT_EQ(DH_SUCCESS, ret); + ret = DScreenSinkHandler::GetInstance().UnsubscribeLocalHardware(dhId); EXPECT_EQ(DH_SUCCESS, ret); + + DScreenSinkHandler::GetInstance().dScreenSinkProxy_ = nullptr; + ret = DScreenSinkHandler::GetInstance().UnsubscribeLocalHardware(dhId); + EXPECT_EQ(ERR_DH_SCREEN_SA_SINKPROXY_NOT_INIT, ret); +} + +/** + * @tc.name: OnRemoteSinkSvrDied_001 + * @tc.desc: Verify the OnRemoteSinkSvrDied function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenSinkHandlerTest, OnRemoteSinkSvrDied_001, TestSize.Level1) +{ + sptr samgr = + SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + + sptr remoteObject = + samgr->GetSystemAbility(DISTRIBUTED_HARDWARE_SCREEN_SINK_SA_ID); + + wptr remote(remoteObject); + + DScreenSinkHandler::GetInstance().sinkSvrRecipient_->OnRemoteDied(remote); + EXPECT_EQ(nullptr, DScreenSinkHandler::GetInstance().dScreenSinkProxy_); } } } \ No newline at end of file