diff --git a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp index d6e073a49e91d14101e458910e46d71aac01b741..3ee251a394a34b64111f162c3e7b051f77aa7b5c 100644 --- a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp +++ b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp @@ -54,6 +54,28 @@ public: } }; +class MockDistributedHardwareStateListener : public DistributedHardwareStateListener { +public: + MockDistributedHardwareStateListener() = default; + virtual ~MockDistributedHardwareStateListener() = default; + + void OnStateChanged(const std::string &uuid, const std::string &dhId, const BusinessState state) override + { + DHLOGI("Handle state changed event"); + } +}; + +class MockDataSyncTriggerListener : public DataSyncTriggerListener { +public: + MockDataSyncTriggerListener() = default; + virtual ~MockDataSyncTriggerListener() = default; + + void OnDataSyncTrigger(const std::string &uuid) override + { + DHLOGI("Handle data sync event"); + } +}; + class UnregisterCallbackTest : public UnregisterCallback { public: UnregisterCallbackTest() = default; @@ -277,7 +299,70 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_008, TestSize.L data.WriteInt32(status); data.WriteString(result); int32_t ret = sourceCallback_->NotifyUnregResultInner(data, reply); + sourceCallback_->RegisterStateListener(nullptr); + sourceCallback_->UnRegisterStateListener(); + sourceCallback_->RegisterTriggerListener(nullptr); + sourceCallback_->UnRegisterTriggerListener(); EXPECT_EQ(DCAMERA_OK, ret); } + +/** + * @tc.name: dcamera_source_callback_test_009 + * @tc.desc: Verify the OnHardwareStateChanged function. + * @tc.type: FUNC + * @tc.require: issue + */ +HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_009, TestSize.Level1) +{ + std::string devId = "devId"; + std::string dhId = "dhId"; + int32_t status = 1; + int32_t ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + sourceCallback_->stateListener_ = std::make_shared(); + devId = ""; + ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + devId += std::string(DID_MAX_SIZE + 1, 'a'); + ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + devId = "devId"; + dhId = ""; + ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + dhId += std::string(DID_MAX_SIZE + 1, 'a'); + ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + dhId = "dhId"; + status = -1; + ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + status = 1; + ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); + EXPECT_EQ(DCAMERA_OK, ret); +} + +/** + * @tc.name: dcamera_source_callback_test_010 + * @tc.desc: Verify the OnDataSyncTrigger function. + * @tc.type: FUNC + * @tc.require: issue + */ +HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_010, TestSize.Level1) +{ + std::string devId = ""; + int32_t ret = sourceCallback_->OnDataSyncTrigger(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + devId += std::string(DID_MAX_SIZE + 1, 'a'); + ret = sourceCallback_->OnDataSyncTrigger(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + sourceCallback_->triggerListener_ = nullptr; + ret = sourceCallback_->OnDataSyncTrigger(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + sourceCallback_->triggerListener_ = std::make_shared(); + ret = sourceCallback_->OnDataSyncTrigger(devId); + EXPECT_NE(DCAMERA_OK, ret); +} } } \ No newline at end of file diff --git a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/BUILD.gn b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/BUILD.gn index 0e3363556a9301c8bba7899ef1de1178d54ad71c..a23bb38fe362fabc131005ba222f13421f9a7c86 100644 --- a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/BUILD.gn +++ b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/BUILD.gn @@ -85,6 +85,7 @@ ohos_unittest("DCameraSinkMgrTest") { "${services_path}/cameraservice/cameraoperator/handler:distributed_camera_handler", "${services_path}/cameraservice/sinkservice:distributed_camera_sink", "${services_path}/channel:distributed_camera_channel", + "${services_path}/data_process:distributed_camera_data_process", ] external_deps = [ diff --git a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_dev_test.cpp b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_dev_test.cpp index a71adb2002c5c9c99c8598f95e3a94a1334fb7fc..9f77c44cbb9ec042899ce48335c431da384dd3d0 100644 --- a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_dev_test.cpp +++ b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_dev_test.cpp @@ -67,6 +67,7 @@ std::string g_testOpenInfoDev = R"({ std::string g_testChannelInfoDevEmpty = ""; std::string g_testOpenInfoDevEmpty = ""; +std::string g_sinkCtrlStr = ""; void DCameraSinkDevTest::SetUpTestCase(void) { @@ -108,6 +109,16 @@ HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_001, TestSize.Level1) ret = dev_->UnInit(); EXPECT_EQ(DCAMERA_OK, ret); EXPECT_EQ(false, dev_->isInit_); + + g_sinkCtrlStr = "test_001"; + ret = dev_->UnInit(); + EXPECT_EQ(DCAMERA_OK, ret); + EXPECT_EQ(false, dev_->isInit_); + + dev_->controller_ = nullptr; + ret = dev_->UnInit(); + EXPECT_EQ(DCAMERA_OK, ret); + EXPECT_EQ(false, dev_->isInit_); } /** @@ -145,6 +156,10 @@ HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_004, TestSize.Level1) int32_t ret = dev_->GetCameraInfo(g_testCameraInfo); EXPECT_EQ(DCAMERA_OK, ret); DHLOGI("DCameraSinkDevTest::GetCameraInfo cameraInfo is %{public}s", GetAnonyString(g_testCameraInfo).c_str()); + + g_sinkCtrlStr = "test_004"; + ret = dev_->GetCameraInfo(g_testCameraInfo); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); } /** @@ -169,6 +184,10 @@ HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_006, TestSize.Level1) { int32_t ret = dev_->ChannelNeg(g_testChannelInfoDevContinue); EXPECT_EQ(DCAMERA_OK, ret); + g_sinkCtrlStr = "test_006"; + ret = dev_->ChannelNeg(g_testChannelInfoDevContinue); + EXPECT_NE(DCAMERA_OK, ret); + g_sinkCtrlStr = ""; } /** @@ -218,5 +237,81 @@ HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_010, TestSize.Level1) int32_t ret = dev_->CloseChannel(); EXPECT_EQ(DCAMERA_OK, ret); } + +/** + * @tc.name: dcamera_sink_dev_test_011 + * @tc.desc: Verify the GetDhid function. + * @tc.type: FUNC + * @tc.require: AR000GK6N1 + */ +HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_011, TestSize.Level1) +{ + dev_->dhId_ = "1"; + std::string ret = dev_->GetDhid(); + EXPECT_NE("", ret); +} + +/** + * @tc.name: dcamera_sink_dev_test_012 + * @tc.desc: Verify the PauseDistributedHardware function. + * @tc.type: FUNC + * @tc.require: AR000GK6N1 + */ +HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_012, TestSize.Level1) +{ + std::string devId = ""; + int32_t ret = dev_->PauseDistributedHardware(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + devId = "devId"; + ret = dev_->PauseDistributedHardware(devId); + EXPECT_EQ(DCAMERA_OK, ret); + + dev_->controller_ = nullptr; + ret = dev_->PauseDistributedHardware(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); +} + +/** + * @tc.name: dcamera_sink_dev_test_013 + * @tc.desc: Verify the ResumeDistributedHardware function. + * @tc.type: FUNC + * @tc.require: AR000GK6N1 + */ +HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_013, TestSize.Level1) +{ + std::string devId = ""; + int32_t ret = dev_->ResumeDistributedHardware(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + devId = "devId"; + ret = dev_->ResumeDistributedHardware(devId); + EXPECT_EQ(DCAMERA_OK, ret); + + dev_->controller_ = nullptr; + ret = dev_->ResumeDistributedHardware(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); +} + +/** + * @tc.name: dcamera_sink_dev_test_014 + * @tc.desc: Verify the StopDistributedHardware function. + * @tc.type: FUNC + * @tc.require: AR000GK6N1 + */ +HWTEST_F(DCameraSinkDevTest, dcamera_sink_dev_test_014, TestSize.Level1) +{ + std::string devId = ""; + int32_t ret = dev_->StopDistributedHardware(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + + devId = "devId"; + ret = dev_->StopDistributedHardware(devId); + EXPECT_EQ(DCAMERA_OK, ret); + + dev_->controller_ = nullptr; + ret = dev_->StopDistributedHardware(devId); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); +} } // namespace DistributedHardware } // namespace OHOS \ No newline at end of file diff --git a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_output_test.cpp b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_output_test.cpp index bd7caa5724c3072bbb70b38371003ecdb82ea017..0a5fe02f10f602c1a6dc64ee97dc691177eb4fd6 100644 --- a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_output_test.cpp +++ b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/dcamera_sink_output_test.cpp @@ -270,5 +270,24 @@ HWTEST_F(DCameraSinkOutputTest, dcamera_sink_output_test_007, TestSize.Level1) int32_t ret = output_->CloseChannel(); EXPECT_EQ(DCAMERA_OK, ret); } + +/** + * @tc.name: dcamera_sink_output_test_008 + * @tc.desc: Verify the CloseChannel function. + * @tc.type: FUNC + * @tc.require: I5N1JI + */ +HWTEST_F(DCameraSinkOutputTest, dcamera_sink_output_test_008, TestSize.Level1) +{ + std::string name = "name"; + PropertyCarrier propertyCarrier; + int32_t ret = output_->GetProperty(name, propertyCarrier); + EXPECT_EQ(DCAMERA_BAD_VALUE, ret); + channel_ = std::make_shared(); + dataProcess_ = std::make_shared(channel_); + output_->dataProcesses_.emplace(CONTINUOUS_FRAME, dataProcess_); + ret = output_->GetProperty(name, propertyCarrier); + EXPECT_NE(DCAMERA_OK, ret); +} } // namespace DistributedHardware } // namespace OHOS \ No newline at end of file diff --git a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/mock_dcamera_sink_controller.h b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/mock_dcamera_sink_controller.h index 36e0b2fa7d1c5e9c6b5a69a371342663c4adf2b9..f1a3887b414b756199d76be2e311867da9973136 100644 --- a/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/mock_dcamera_sink_controller.h +++ b/services/cameraservice/sinkservice/test/unittest/common/distributedcameramgr/mock_dcamera_sink_controller.h @@ -21,6 +21,7 @@ namespace OHOS { namespace DistributedHardware { +extern std::string g_sinkCtrlStr; class MockDCameraSinkController : public ICameraController { public: explicit MockDCameraSinkController(const std::shared_ptr& accessControl) @@ -41,6 +42,9 @@ public: } int32_t ChannelNeg(std::shared_ptr& info) { + if (g_sinkCtrlStr == "test_006") { + return DCAMERA_BAD_VALUE; + } return DCAMERA_OK; } int32_t DCameraNotify(std::shared_ptr& events) @@ -53,6 +57,9 @@ public: } int32_t GetCameraInfo(std::shared_ptr& camInfo) { + if (g_sinkCtrlStr == "test_004") { + return DCAMERA_BAD_VALUE; + } return DCAMERA_OK; } int32_t OpenChannel(std::shared_ptr& openInfo) @@ -69,6 +76,9 @@ public: } int32_t UnInit() { + if (g_sinkCtrlStr == "test_001") { + return DCAMERA_BAD_VALUE; + } return DCAMERA_OK; } int32_t PauseDistributedHardware(const std::string &networkId) diff --git a/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_stream_data_process_test.cpp b/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_stream_data_process_test.cpp index 18a962c6d9151458db1190c869f0e033e5146632..68a084997a01b331d00f48348841aa571e65eba1 100644 --- a/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_stream_data_process_test.cpp +++ b/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_stream_data_process_test.cpp @@ -237,5 +237,24 @@ HWTEST_F(DCameraStreamDataProcessTest, dcamera_stream_data_process_test_007, Tes int32_t ret = streamProcess1->GetProducerSize(); EXPECT_EQ(DCAMERA_OK, ret); } + +/** + * @tc.name: dcamera_stream_data_process_test_008 + * @tc.desc: Verify GetPipelineFormat func. + * @tc.type: FUNC + * @tc.require: issue + */ +HWTEST_F(DCameraStreamDataProcessTest, dcamera_stream_data_process_test_008, TestSize.Level1) +{ + DHLOGI("DCameraStreamDataProcessTest::dcamera_stream_data_process_test_008"); + int32_t format = OHOS_CAMERA_FORMAT_RGBA_8888; + std::shared_ptr streamProcess1 = + std::make_shared(TEST_DEVICE_ID, TEST_CAMERA_DH_ID_0, DCStreamType::CONTINUOUS_FRAME); + Videoformat ret = streamProcess1->GetPipelineFormat(format); + EXPECT_EQ(Videoformat::RGBA_8888, ret); + format = -1; + ret = streamProcess1->GetPipelineFormat(format); + EXPECT_EQ(Videoformat::NV21, ret); +} } } \ No newline at end of file