1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include "icamera_channel_listener.h"
18 #include "dcamera_sink_controller.h"
19 #include "dcamera_sink_access_control.h"
20 #include "dcamera_sink_callback.h"
21 #include "dcamera_sink_controller_state_callback.h"
22
23 #include "distributed_camera_constants.h"
24 #include "distributed_camera_errno.h"
25
26 using namespace testing::ext;
27
28 namespace OHOS {
29 namespace DistributedHardware {
30 class DCameraSinkControllerStateCallbackTest : public testing::Test {
31 public:
32 static void SetUpTestCase(void);
33 static void TearDownTestCase(void);
34 void SetUp();
35 void TearDown();
36
37 std::shared_ptr<DCameraSinkControllerStateCallback> stateCallback_;
38 };
39
SetUpTestCase(void)40 void DCameraSinkControllerStateCallbackTest::SetUpTestCase(void)
41 {
42 }
43
TearDownTestCase(void)44 void DCameraSinkControllerStateCallbackTest::TearDownTestCase(void)
45 {
46 }
47
SetUp(void)48 void DCameraSinkControllerStateCallbackTest::SetUp(void)
49 {
50 std::shared_ptr<ICameraSinkAccessControl> accessControl = std::make_shared<DCameraSinkAccessControl>();
51 sptr<IDCameraSinkCallback> sinkCallback(new DCameraSinkCallback());
52 std::shared_ptr<DCameraSinkController> controller =
53 std::make_shared<DCameraSinkController>(accessControl, sinkCallback);
54 stateCallback_ = std::make_shared<DCameraSinkControllerStateCallback>(controller);
55 }
56
TearDown(void)57 void DCameraSinkControllerStateCallbackTest::TearDown(void)
58 {
59 stateCallback_ = nullptr;
60 }
61
62 /**
63 * @tc.name: dcamera_sink_controller_state_callback_test_001
64 * @tc.desc: Verify the OnStateChanged function.
65 * @tc.type: FUNC
66 * @tc.require: DTS
67 */
68 HWTEST_F(DCameraSinkControllerStateCallbackTest, dcamera_sink_controller_state_callback_test_001, TestSize.Level1)
69 {
70 DHLOGI("dcamera_sink_controller_state_callback_test_001 enter");
71 ASSERT_NE(stateCallback_, nullptr);
72 std::shared_ptr<DCameraEvent> event = std::make_shared<DCameraEvent>();
73 stateCallback_->OnStateChanged(event);
74 EXPECT_EQ(true, event != nullptr);
75 }
76
77 /**
78 * @tc.name: dcamera_sink_controller_state_callback_test_002
79 * @tc.desc: Verify the OnMetadataResult function.
80 * @tc.type: FUNC
81 * @tc.require: DTS
82 */
83 HWTEST_F(DCameraSinkControllerStateCallbackTest, dcamera_sink_controller_state_callback_test_002, TestSize.Level1)
84 {
85 DHLOGI("dcamera_sink_controller_state_callback_test_002 enter");
86 ASSERT_NE(stateCallback_, nullptr);
87 std::vector<std::shared_ptr<DCameraSettings>> settings;
88 stateCallback_->OnMetadataResult(settings);
89 EXPECT_EQ(true, settings.empty());
90 }
91
92 /**
93 * @tc.name: dcamera_sink_controller_state_callback_test_003
94 * @tc.desc: Verify the OnDataReceived function.
95 * @tc.type: FUNC
96 * @tc.require: DTS
97 */
98 HWTEST_F(DCameraSinkControllerStateCallbackTest, dcamera_sink_controller_state_callback_test_003, TestSize.Level1)
99 {
100 DHLOGI("dcamera_sink_controller_state_callback_test_003 enter");
101 std::shared_ptr<DCameraSinkController> contl;
102 auto stateCallback = std::make_shared<DCameraSinkControllerStateCallback>(contl);
103 std::shared_ptr<DCameraEvent> event = std::make_shared<DCameraEvent>();
104 stateCallback->OnStateChanged(event);
105 std::vector<std::shared_ptr<DCameraSettings>> settings;
106 stateCallback->OnMetadataResult(settings);
107 EXPECT_EQ(true, settings.empty());
108 }
109 } // namespace DistributedHardware
110 } // namespace OHOS