1 /*
2 * Copyright (C) 2024 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 "avmetadatahelper_server_unit_test.h"
17 #include "avmetadatahelper_server.h"
18 #include "media_log.h"
19 #include "media_errors.h"
20 #include "engine_factory_repo.h"
21 #include "uri_helper.h"
22 #include "media_dfx.h"
23 #include "ipc_skeleton.h"
24
25 using namespace OHOS;
26 using namespace OHOS::Media;
27 using namespace std;
28 using namespace testing::ext;
29
30 namespace OHOS {
31 namespace Media {
32 namespace Test {
SetUpTestCase(void)33 void AVMetadataHelperServerUnitTest::SetUpTestCase(void) {}
34
TearDownTestCase(void)35 void AVMetadataHelperServerUnitTest::TearDownTestCase(void) {}
36
SetUp(void)37 void AVMetadataHelperServerUnitTest::SetUp(void)
38 {
39 avmetadataHelperServer_ = std::make_shared<AVMetadataHelperServer>();
40 }
41
TearDown(void)42 void AVMetadataHelperServerUnitTest::TearDown(void)
43 {
44 avmetadataHelperServer_ = nullptr;
45 }
46
47 /**
48 * @tc.name: SetHelperCallback
49 * @tc.desc: SetHelperCallback
50 * @tc.type: FUNC
51 */
52 HWTEST_F(AVMetadataHelperServerUnitTest, SetHelperCallback, TestSize.Level1)
53 {
54 std::shared_ptr<HelperCallback> callback = std::make_shared<TestHelperCallback>();
55 avmetadataHelperServer_->currState_ = HelperStates::HELPER_IDLE;
56 int32_t ret = avmetadataHelperServer_->SetHelperCallback(callback);
57 avmetadataHelperServer_->currState_ = HelperStates::HELPER_STATE_ERROR;
58 ret = avmetadataHelperServer_->SetHelperCallback(callback);
59 EXPECT_EQ(ret, MSERR_INVALID_OPERATION);
60 }
61
62 /**
63 * @tc.name: ChangeState
64 * @tc.desc: ChangeState
65 * @tc.type: FUNC
66 */
67 HWTEST_F(AVMetadataHelperServerUnitTest, ChangeState, TestSize.Level1)
68 {
69 HelperStates state = HelperStates::HELPER_STATE_ERROR;
70 avmetadataHelperServer_->ChangeState(state);
71 state = HelperStates::HELPER_PREPARED;
72 avmetadataHelperServer_->currState_ = HelperStates::HELPER_IDLE;
73 avmetadataHelperServer_->ChangeState(state);
74 avmetadataHelperServer_->currState_ = HelperStates::HELPER_RELEASED;
75 avmetadataHelperServer_->ChangeState(state);
76 state = HelperStates::HELPER_CALL_DONE;
77 avmetadataHelperServer_->currState_ = HelperStates::HELPER_CALL_DONE;
78 avmetadataHelperServer_->ChangeState(state);
79 avmetadataHelperServer_->currState_ = HelperStates::HELPER_PREPARED;
80 avmetadataHelperServer_->ChangeState(state);
81 state = HelperStates::HELPER_RELEASED;
82 avmetadataHelperServer_->currState_ = HelperStates::HELPER_IDLE;
83 avmetadataHelperServer_->ChangeState(state);
84 avmetadataHelperServer_->currState_ = HelperStates::HELPER_PREPARED;
85 avmetadataHelperServer_->ChangeState(state);
86 avmetadataHelperServer_->currState_ = HelperStates::HELPER_CALL_DONE;
87 avmetadataHelperServer_->ChangeState(state);
88 state = HelperStates::HELPER_STATE_ERROR;
89 avmetadataHelperServer_->ChangeState(state);
90 EXPECT_EQ(avmetadataHelperServer_->currState_, HelperStates::HELPER_STATE_ERROR);
91 }
92
93 /**
94 * @tc.name: NotifyErrorCallback
95 * @tc.desc: NotifyErrorCallback
96 * @tc.type: FUNC
97 */
98 HWTEST_F(AVMetadataHelperServerUnitTest, NotifyErrorCallback, TestSize.Level1)
99 {
100 int32_t code = 0;
101 const std::string msg = "test";
102 avmetadataHelperServer_->helperCb_ = nullptr;
103 avmetadataHelperServer_->NotifyErrorCallback(code, msg);
104 avmetadataHelperServer_->helperCb_ = std::make_shared<TestHelperCallback>();
105 avmetadataHelperServer_->NotifyErrorCallback(code, msg);
106 EXPECT_EQ(avmetadataHelperServer_->isLiveStream_, false);
107 }
108
109 /**
110 * @tc.name: GetStatusDescription
111 * @tc.desc: GetStatusDescription
112 * @tc.type: FUNC
113 */
114 HWTEST_F(AVMetadataHelperServerUnitTest, GetStatusDescription, TestSize.Level1)
115 {
116 int32_t status = -1;
117 avmetadataHelperServer_->GetStatusDescription(status);
118 status = 5;
119 avmetadataHelperServer_->GetStatusDescription(status);
120 status = 2;
121 avmetadataHelperServer_->GetStatusDescription(status);
122 EXPECT_EQ(avmetadataHelperServer_->isLiveStream_, false);
123 }
124
125 /**
126 * @tc.name: MediaTrace
127 * @tc.desc: MediaTrace
128 * @tc.type: FUNC
129 */
130 HWTEST_F(AVMetadataHelperServerUnitTest, MediaTrace, TestSize.Level1)
131 {
132 MediaTrace trace("AVMetadataHelperServer::Test", HITRACE_LEVEL_CRITICAL);
133 EXPECT_EQ(HITRACE_LEVEL_CRITICAL, trace.level_);
134 }
135 } // namespace Test
136 } // namespace Media
137 } // namespace OHOS