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 "media_server_manager_unittest.h"
17 #include "media_errors.h"
18
19 namespace OHOS {
20 namespace Media {
21 using namespace std;
22 using namespace testing;
23 using namespace testing::ext;
24
25 constexpr int32_t TEST_NUM1 = 1234;
26 constexpr int32_t TEST_NUM2 = 5678;
27 constexpr int32_t TEST_NUM3 = 512;
SetUpTestCase(void)28 void MediaServerManagerUnitTest::SetUpTestCase(void)
29 {
30 }
31
TearDownTestCase(void)32 void MediaServerManagerUnitTest::TearDownTestCase(void)
33 {
34 }
35
SetUp(void)36 void MediaServerManagerUnitTest::SetUp(void)
37 {
38 }
39
TearDown(void)40 void MediaServerManagerUnitTest::TearDown(void)
41 {
42 }
43
44 /**
45 * @tc.name : Test CreateStubObject API
46 * @tc.number: CreateStubObject_001
47 * @tc.desc : Test case RECORDERPROFILES, TRANSCODER, AVMETADATAHELPER
48 * and invalid type of CreateStubObject interface
49 */
50 HWTEST_F(MediaServerManagerUnitTest, CreateStubObject_001, TestSize.Level1)
51 {
52 sptr<IRemoteObject> ret =
53 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
54 EXPECT_NE(ret, nullptr);
55 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDERPROFILES, ret);
56 ret = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
57 EXPECT_NE(ret, nullptr);
58 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, ret);
59 ret = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
60 EXPECT_NE(ret, nullptr);
61 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, ret);
62 MediaServerManager::StubType invalidType = static_cast<MediaServerManager::StubType>(-1);
63 ret = MediaServerManager::GetInstance().CreateStubObject(invalidType);
64 MediaServerManager::GetInstance().DestroyStubObject(invalidType, ret);
65 EXPECT_EQ(ret, nullptr);
66 }
67
68 /**
69 * @tc.name : Test DestroyAVCodecStub API
70 * @tc.number: DestroyAVCodecStub_001
71 * @tc.desc : Test case AVCODEC
72 * Test if it->first == object && it->first != object
73 */
74 HWTEST_F(MediaServerManagerUnitTest, DestroyAVCodecStub_001, TestSize.Level1)
75 {
76 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
77 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
78 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
79 pid_t pid = 0;
80 mediaServerManager.avCodecStubMap_[object2] = pid;
81 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
82 mediaServerManager.DestroyAVCodecStub(MediaServerManager::AVCODEC, object1, pid);
83 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
84 mediaServerManager.DestroyAVCodecStub(MediaServerManager::AVCODEC, object2, pid);
85 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
86 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, object1);
87 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODEC, object2);
88 }
89
90 /**
91 * @tc.name : Test DestroyAVCodecStub API
92 * @tc.number: DestroyAVCodecStub_002
93 * @tc.desc : Test case AVCODECLIST and invalid type of DestroyAVCodecStub interface
94 * Test if it->first == object && it->first != object
95 */
96 HWTEST_F(MediaServerManagerUnitTest, DestroyAVCodecStub_002, TestSize.Level1)
97 {
98 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
99 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
100 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
101 pid_t pid = 0;
102 mediaServerManager.avCodecListStubMap_[object2] = pid;
103 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
104 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODECLIST, object1, pid);
105 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
106 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODECLIST, object2, pid);
107 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 0);
108 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR, object2, pid);
109 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, object1);
110 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODECLIST, object2);
111 }
112
113 /**
114 * @tc.name : Test DestroyAVTransCoderStub API
115 * @tc.number: DestroyAVTransCoderStub_001
116 * @tc.desc : Test case AVCODEC and invalid type of DestroyAVCodecStub interface
117 * Test if it->first == object && it->first != object
118 */
119 HWTEST_F(MediaServerManagerUnitTest, DestroyAVTransCoderStub_001, TestSize.Level1)
120 {
121 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
122 sptr<IRemoteObject> object1 = nullptr;
123 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
124 pid_t pid = 0;
125 mediaServerManager.transCoderStubMap_[object2] = pid;
126 ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
127 mediaServerManager.DestroyAVTransCoderStub(MediaServerManager::TRANSCODER, object1, pid);
128 ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
129 mediaServerManager.DestroyAVTransCoderStub(MediaServerManager::TRANSCODER, object2, pid);
130 ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 0);
131 mediaServerManager.DestroyAVTransCoderStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR, object1, pid);
132 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, object2);
133 }
134
135 /**
136 * @tc.name : Test DestroyAVPlayerStub API
137 * @tc.number: DestroyAVPlayerStub_001
138 * @tc.desc : Test case AVMETADATAHELPER and invalid type of DestroyAVCodecStub interface
139 * Test if it->first == object && it->first != object
140 */
141 HWTEST_F(MediaServerManagerUnitTest, DestroyAVPlayerStub_001, TestSize.Level1)
142 {
143 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
144 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
145 sptr<IRemoteObject> object2 =
146 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
147 pid_t pid = 0;
148 mediaServerManager.avMetadataHelperStubMap_[object2] = pid;
149 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
150 mediaServerManager.DestroyAVPlayerStub(MediaServerManager::AVMETADATAHELPER, object1, pid);
151 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
152 mediaServerManager.DestroyAVPlayerStub(MediaServerManager::AVMETADATAHELPER, object2, pid);
153 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 0);
154 mediaServerManager.DestroyAVPlayerStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR, object1, pid);
155 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, object1);
156 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, object2);
157 }
158
159 /**
160 * @tc.name : Test DestroyAVRecorderStub API
161 * @tc.number: DestroyAVRecorderStub_001
162 * @tc.desc : Test case RECORDER and invalid type of DestroyAVCodecStub interface
163 * Test if it->first != object
164 */
165 HWTEST_F(MediaServerManagerUnitTest, DestroyAVRecorderStub_001, TestSize.Level1)
166 {
167 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
168 sptr<IRemoteObject> object1 = nullptr;
169 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
170 pid_t pid = 0;
171 mediaServerManager.recorderStubMap_[object2] = pid;
172 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
173 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDER, object1, pid);
174 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
175 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDER, object2, pid);
176 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 0);
177 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::SCREEN_CAPTURE, object1, pid);
178 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDER, object2);
179 }
180
181 /**
182 * @tc.name : Test DestroyAVRecorderStub API
183 * @tc.number: DestroyAVRecorderStub_002
184 * @tc.desc : Test case RECORDERPROFILES
185 * Test if it->first != object and it->first == object
186 */
187 HWTEST_F(MediaServerManagerUnitTest, DestroyAVRecorderStub_002, TestSize.Level1)
188 {
189 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
190 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
191 sptr<IRemoteObject> object2 =
192 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
193 pid_t pid = 0;
194 mediaServerManager.recorderProfilesStubMap_[object2] = pid;
195 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
196 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDERPROFILES, object1, pid);
197 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
198 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDERPROFILES, object2, pid);
199 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 0);
200 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDERPROFILES, object2);
201 }
202
203 /**
204 * @tc.name : Test CreateRecorderProfilesStubObject API
205 * @tc.number: CreateRecorderProfilesStubObject_001
206 * @tc.desc : Test all
207 */
208 HWTEST_F(MediaServerManagerUnitTest, CreateRecorderProfilesStubObject_001, TestSize.Level1)
209 {
210 sptr<IRemoteObject> ret =
211 MediaServerManager::GetInstance().CreateRecorderProfilesStubObject();
212 EXPECT_NE(ret, nullptr);
213 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDERPROFILES, ret);
214 }
215
216 /**
217 * @tc.name : Test CreateTransCoderStubObject API
218 * @tc.number: CreateTransCoderStubObject_001
219 * @tc.desc : Test all
220 */
221 HWTEST_F(MediaServerManagerUnitTest, CreateTransCoderStubObject_001, TestSize.Level1)
222 {
223 sptr<IRemoteObject> ret =
224 MediaServerManager::GetInstance().CreateTransCoderStubObject();
225 EXPECT_NE(ret, nullptr);
226 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, ret);
227 }
228
229 /**
230 * @tc.name : Test CreateAVMetadataHelperStubObject API
231 * @tc.number: CreateAVMetadataHelperStubObject_001
232 * @tc.desc : Test all
233 */
234 HWTEST_F(MediaServerManagerUnitTest, CreateAVMetadataHelperStubObject_001, TestSize.Level1)
235 {
236 sptr<IRemoteObject> ret =
237 MediaServerManager::GetInstance().CreateAVMetadataHelperStubObject();
238 EXPECT_NE(ret, nullptr);
239 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, ret);
240 }
241
242 /**
243 * @tc.name : Test DestroyAVScreenCaptureStub API
244 * @tc.number: DestroyAVScreenCaptureStub_001
245 * @tc.desc : Test case SCREEN_CAPTURE if it->first != object
246 * Test case invalid type of DestroyAVScreenCaptureStub interface
247 */
248 HWTEST_F(MediaServerManagerUnitTest, DestroyAVScreenCaptureStub_001, TestSize.Level1)
249 {
250 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
251 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
252 sptr<IRemoteObject> object2 =
253 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
254 pid_t pid = 0;
255 mediaServerManager.screenCaptureStubMap_[object2] = pid;
256 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 1);
257 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE, object1, pid);
258 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 1);
259 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE, object2, pid);
260 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 0);
261 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::TRANSCODER, object2, pid);
262 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, object1);
263 }
264
265 /**
266 * @tc.name : Test DestroyAVScreenCaptureStub API
267 * @tc.number: DestroyAVScreenCaptureStub_002
268 * @tc.desc : Test case SCREEN_CAPTURE_CONTROLLER if it->first != object
269 */
270 HWTEST_F(MediaServerManagerUnitTest, DestroyAVScreenCaptureStub_002, TestSize.Level1)
271 {
272 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
273 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
274 sptr<IRemoteObject> object2 =
275 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
276 pid_t pid = 0;
277 mediaServerManager.screenCaptureControllerStubMap_[object2] = pid;
278 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
279 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE_CONTROLLER,
280 object1, pid);
281 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
282 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE_CONTROLLER,
283 object2, pid);
284 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 0);
285 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, object1);
286 }
287
288 /**
289 * @tc.name : Test DestroyAVScreenCaptureStubForPid API
290 * @tc.number: DestroyAVScreenCaptureStubForPid_001
291 * @tc.desc : Test entry deletion for valid PID and no deletion for non-existent PID in screen capture maps.
292 */
293 HWTEST_F(MediaServerManagerUnitTest, DestroyAVScreenCaptureStubForPid_001, TestSize.Level1)
294 {
295 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
296 mediaServerManager.screenCaptureStubMap_.clear();
297 mediaServerManager.screenCaptureMonitorStubMap_.clear();
298 mediaServerManager.screenCaptureControllerStubMap_.clear();
299 sptr<IRemoteObject> screenCaptureStub =
300 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
301 sptr<IRemoteObject> screenCaptureMonitorStub =
302 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR);
303 sptr<IRemoteObject> screenCaptureControllerStub =
304 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
305 pid_t testPid = TEST_NUM1;
306 mediaServerManager.screenCaptureStubMap_[screenCaptureStub] = testPid;
307 mediaServerManager.screenCaptureMonitorStubMap_[screenCaptureMonitorStub] = testPid;
308 mediaServerManager.screenCaptureControllerStubMap_[screenCaptureControllerStub] = testPid;
309 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 1);
310 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
311 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
312 mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
313 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 0);
314 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 0);
315 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 0);
316 mediaServerManager.screenCaptureStubMap_[screenCaptureStub] = testPid;
317 mediaServerManager.screenCaptureMonitorStubMap_[screenCaptureMonitorStub] = testPid;
318 mediaServerManager.screenCaptureControllerStubMap_[screenCaptureControllerStub] = testPid;
319 pid_t nonExistentPid = TEST_NUM2;
320 mediaServerManager.DestroyAVScreenCaptureStubForPid(nonExistentPid);
321 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 1);
322 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
323 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
324 mediaServerManager.screenCaptureStubMap_.clear();
325 mediaServerManager.screenCaptureMonitorStubMap_.clear();
326 mediaServerManager.screenCaptureControllerStubMap_.clear();
327 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE, screenCaptureStub);
328 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR,
329 screenCaptureMonitorStub);
330 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER,
331 screenCaptureControllerStub);
332 }
333
334 /**
335 * @tc.name : Test DestroyAVScreenCaptureStubForPid API
336 * @tc.number: DestroyAVScreenCaptureStubForPid_002
337 * @tc.desc : Test deletion of multiple entries with the same PID in screen capture maps.
338 */
339 HWTEST_F(MediaServerManagerUnitTest, DestroyAVScreenCaptureStubForPid_002, TestSize.Level1)
340 {
341 pid_t testPid = TEST_NUM1;
342 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
343 sptr<IRemoteObject> screenCaptureStub =
344 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
345 sptr<IRemoteObject> screenCaptureMonitorStub =
346 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR);
347 sptr<IRemoteObject> screenCaptureControllerStub =
348 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
349 sptr<IRemoteObject> anotherScreenCaptureStub =
350 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
351 sptr<IRemoteObject> anotherScreenCaptureMonitorStub =
352 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR);
353 sptr<IRemoteObject> anotherScreenCaptureControllerStub =
354 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
355
356 mediaServerManager.screenCaptureStubMap_[screenCaptureStub] = testPid;
357 mediaServerManager.screenCaptureStubMap_[anotherScreenCaptureStub] = testPid;
358 mediaServerManager.screenCaptureMonitorStubMap_[screenCaptureMonitorStub] = testPid;
359 mediaServerManager.screenCaptureMonitorStubMap_[anotherScreenCaptureMonitorStub] = testPid;
360 mediaServerManager.screenCaptureControllerStubMap_[screenCaptureControllerStub] = testPid;
361 mediaServerManager.screenCaptureControllerStubMap_[anotherScreenCaptureControllerStub] = testPid;
362 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 2);
363 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 2);
364 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 2);
365
366 mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
367 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 0);
368 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 0);
369 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 0);
370 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE, screenCaptureStub);
371 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR,
372 screenCaptureMonitorStub);
373 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER,
374 screenCaptureControllerStub);
375 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE, anotherScreenCaptureStub);
376 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR,
377 anotherScreenCaptureMonitorStub);
378 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER,
379 anotherScreenCaptureControllerStub);
380 }
381
382 /**
383 * @tc.name : Test GetPlayerPids API
384 * @tc.number: GetPlayerPids_001
385 * @tc.desc : Test all
386 */
387 HWTEST_F(MediaServerManagerUnitTest, GetPlayerPids_001, TestSize.Level1)
388 {
389 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
390 std::vector<pid_t> ret = mediaServerManager.GetPlayerPids();
391 ASSERT_TRUE(ret.empty());
392 }
393
394 /**
395 * @tc.name : Test DestroyAVCodecStubForPid API
396 * @tc.number: DestroyAVCodecStubForPid_001
397 * @tc.desc : Test that entries in avCodecStubMap_
398 * and avCodecListStubMap_ are correctly deleted when a single PID exists.
399 */
400 HWTEST_F(MediaServerManagerUnitTest, DestroyAVCodecStubForPid_001, TestSize.Level1)
401 {
402 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
403 mediaServerManager.avCodecStubMap_.clear();
404 mediaServerManager.avCodecListStubMap_.clear();
405
406 sptr<IRemoteObject> avCodecStub = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
407 sptr<IRemoteObject> avCodecListStub =
408 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
409 pid_t testPid = TEST_NUM1;
410 mediaServerManager.avCodecStubMap_[avCodecStub] = testPid;
411 mediaServerManager.avCodecListStubMap_[avCodecListStub] = testPid;
412 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
413 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
414 mediaServerManager.DestroyAVCodecStubForPid(testPid);
415 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
416 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 0);
417 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODEC, avCodecStub);
418 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODECLIST, avCodecListStub);
419 }
420
421 /**
422 * @tc.name : Test DestroyAVCodecStubForPid API
423 * @tc.number: DestroyAVCodecStubForPid_002
424 * @tc.desc : Test that avCodecStubMap_ and avCodecListStubMap_ remain unchanged when the target PID does not exist.
425 */
426 HWTEST_F(MediaServerManagerUnitTest, DestroyAVCodecStubForPid_002, TestSize.Level1)
427 {
428 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
429 mediaServerManager.avCodecStubMap_.clear();
430 mediaServerManager.avCodecListStubMap_.clear();
431
432 sptr<IRemoteObject> avCodecStub = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
433 sptr<IRemoteObject> avCodecListStub =
434 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
435 pid_t testPid = TEST_NUM1;
436 pid_t nonExistentPid = TEST_NUM2;
437 mediaServerManager.avCodecStubMap_[avCodecStub] = testPid;
438 mediaServerManager.avCodecListStubMap_[avCodecListStub] = testPid;
439 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
440 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
441 mediaServerManager.DestroyAVCodecStubForPid(nonExistentPid);
442 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
443 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
444 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODEC, avCodecStub);
445 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODECLIST, avCodecListStub);
446 }
447
448 /**
449 * @tc.name : Test DestroyAVCodecStubForPid API
450 * @tc.number: DestroyAVCodecStubForPid_003
451 * @tc.desc : Test all entries with the same PID in avCodecStubMap_ and avCodecListStubMap_ are correctly deleted.
452 */
453 HWTEST_F(MediaServerManagerUnitTest, DestroyAVCodecStubForPid_003, TestSize.Level1)
454 {
455 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
456 mediaServerManager.avCodecStubMap_.clear();
457 mediaServerManager.avCodecListStubMap_.clear();
458 sptr<IRemoteObject> avCodecStub1 =
459 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
460 sptr<IRemoteObject> avCodecStub2 =
461 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
462 sptr<IRemoteObject> avCodecListStub1 =
463 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
464 sptr<IRemoteObject> avCodecListStub2 =
465 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
466 pid_t testPid = TEST_NUM1;
467 mediaServerManager.avCodecStubMap_[avCodecStub1] = testPid;
468 mediaServerManager.avCodecStubMap_[avCodecStub2] = testPid;
469 mediaServerManager.avCodecListStubMap_[avCodecListStub1] = testPid;
470 mediaServerManager.avCodecListStubMap_[avCodecListStub2] = testPid;
471 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 2);
472 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 2);
473 mediaServerManager.DestroyAVCodecStubForPid(testPid);
474 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
475 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 0);
476 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, avCodecStub1);
477 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODEC, avCodecStub2);
478 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, avCodecListStub1);
479 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODECLIST, avCodecListStub2);
480 }
481
482 /**
483 * @tc.name : Test DestroyAVCodecStubForPid API
484 * @tc.number: DestroyAVCodecStubForPid_004
485 * @tc.desc : Test that the function executes without exceptions when avCodecStubMap_
486 * and avCodecListStubMap_ are empty.
487 */
488 HWTEST_F(MediaServerManagerUnitTest, DestroyAVCodecStubForPid_004, TestSize.Level1)
489 {
490 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
491 mediaServerManager.avCodecStubMap_.clear();
492 mediaServerManager.avCodecListStubMap_.clear();
493 ASSERT_TRUE(mediaServerManager.avCodecStubMap_.empty());
494 ASSERT_TRUE(mediaServerManager.avCodecListStubMap_.empty());
495 pid_t testPid = TEST_NUM1;
496 mediaServerManager.DestroyAVCodecStubForPid(testPid);
497 ASSERT_TRUE(mediaServerManager.avCodecStubMap_.empty());
498 ASSERT_TRUE(mediaServerManager.avCodecListStubMap_.empty());
499 }
500
501 /**
502 * @tc.name : Test CanKillMediaService API
503 * @tc.number: CanKillMediaService_001
504 * @tc.desc : Test all
505 */
506 HWTEST_F(MediaServerManagerUnitTest, CanKillMediaService_001, TestSize.Level1)
507 {
508 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
509 bool ret = mediaServerManager.CanKillMediaService();
510 ASSERT_EQ(ret, false);
511 }
512
513 /**
514 * @tc.name : Test DestroyAVPlayerStubForPid API
515 * @tc.number: DestroyAVPlayerStubForPid_001
516 * @tc.desc : Test the second else branch when itPlayer->second != pid.
517 */
518 HWTEST_F(MediaServerManagerUnitTest, DestroyAVPlayerStubForPid_001, TestSize.Level1)
519 {
520 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
521
522 mediaServerManager.playerStubMap_.clear();
523 mediaServerManager.avMetadataHelperStubMap_.clear();
524 mediaServerManager.pidToPlayerStubMap_.clear();
525 sptr<IRemoteObject> playerStub1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
526 sptr<IRemoteObject> playerStub2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
527 pid_t testPid = TEST_NUM1;
528 pid_t anotherPid = TEST_NUM2;
529 mediaServerManager.playerStubMap_[playerStub1] = testPid;
530 mediaServerManager.playerStubMap_[playerStub2] = anotherPid;
531 mediaServerManager.pidToPlayerStubMap_[testPid].insert(playerStub1);
532 ASSERT_EQ(mediaServerManager.playerStubMap_.size(), 2);
533 mediaServerManager.DestroyAVPlayerStubForPid(testPid);
534
535 ASSERT_EQ(mediaServerManager.playerStubMap_.size(), 1);
536 ASSERT_EQ(mediaServerManager.playerStubMap_.count(playerStub2), 1);
537 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, playerStub1);
538 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, playerStub2);
539 }
540
541 /**
542 * @tc.name : Test DestroyAVPlayerStubForPid API
543 * @tc.number: DestroyAVPlayerStubForPid_002
544 * @tc.desc : Test the third if branch when itAvMetadata->second == pid.
545 */
546 HWTEST_F(MediaServerManagerUnitTest, DestroyAVPlayerStubForPid_002, TestSize.Level1)
547 {
548 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
549
550 mediaServerManager.playerStubMap_.clear();
551 mediaServerManager.avMetadataHelperStubMap_.clear();
552 mediaServerManager.pidToPlayerStubMap_.clear();
553
554 sptr<IRemoteObject> avMetadataHelperStub1 =
555 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
556 sptr<IRemoteObject> avMetadataHelperStub2 =
557 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
558 pid_t testPid = TEST_NUM1;
559
560 mediaServerManager.avMetadataHelperStubMap_[avMetadataHelperStub1] = testPid;
561 mediaServerManager.avMetadataHelperStubMap_[avMetadataHelperStub2] = testPid;
562 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 2);
563 mediaServerManager.DestroyAVPlayerStubForPid(testPid);
564 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 0);
565
566 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, avMetadataHelperStub1);
567 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, avMetadataHelperStub2);
568 }
569
570 /**
571 * @tc.name : Test DestroyAVPlayerStubForPid API
572 * @tc.number: DestroyAVPlayerStubForPid_003
573 * @tc.desc : Test the third else branch when itAvMetadata->second != pid.
574 */
575 HWTEST_F(MediaServerManagerUnitTest, DestroyAVPlayerStubForPid_003, TestSize.Level1)
576 {
577 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
578
579 mediaServerManager.playerStubMap_.clear();
580 mediaServerManager.avMetadataHelperStubMap_.clear();
581 mediaServerManager.pidToPlayerStubMap_.clear();
582 sptr<IRemoteObject> avMetadataHelperStub1 =
583 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
584 sptr<IRemoteObject> avMetadataHelperStub2 =
585 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
586 pid_t testPid = TEST_NUM1;
587 pid_t anotherPid = TEST_NUM2;
588 mediaServerManager.avMetadataHelperStubMap_[avMetadataHelperStub1] = testPid;
589 mediaServerManager.avMetadataHelperStubMap_[avMetadataHelperStub2] = anotherPid;
590 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 2);
591 mediaServerManager.DestroyAVPlayerStubForPid(testPid);
592
593 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
594 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.count(avMetadataHelperStub2), 1);
595 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, avMetadataHelperStub1);
596 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, avMetadataHelperStub2);
597 }
598
599 /**
600 * @tc.name : Test DestroyAVRecorderStubForPid API
601 * @tc.number: DestroyAVRecorderStubForPid_001
602 * @tc.desc : Test the first if branch when itRecorder->second == pid.
603 */
604 HWTEST_F(MediaServerManagerUnitTest, DestroyAVRecorderStubForPid_001, TestSize.Level1)
605 {
606 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
607
608 mediaServerManager.recorderStubMap_.clear();
609 mediaServerManager.recorderProfilesStubMap_.clear();
610 sptr<IRemoteObject> recorderStub = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
611 pid_t testPid = TEST_NUM1;
612 mediaServerManager.recorderStubMap_[recorderStub] = testPid;
613 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
614 mediaServerManager.DestroyAVRecorderStubForPid(testPid);
615 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 0);
616 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDER, recorderStub);
617 }
618
619 /**
620 * @tc.name : Test DestroyAVRecorderStubForPid API
621 * @tc.number: DestroyAVRecorderStubForPid_002
622 * @tc.desc : Test the first else branch when itRecorder->second != pid.
623 */
624 HWTEST_F(MediaServerManagerUnitTest, DestroyAVRecorderStubForPid_002, TestSize.Level1)
625 {
626 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
627
628 mediaServerManager.recorderStubMap_.clear();
629 mediaServerManager.recorderProfilesStubMap_.clear();
630 sptr<IRemoteObject> recorderStub1 =
631 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
632 sptr<IRemoteObject> recorderStub2 =
633 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
634 pid_t testPid = TEST_NUM1;
635 pid_t anotherPid = TEST_NUM2;
636 mediaServerManager.recorderStubMap_[recorderStub1] = testPid;
637 mediaServerManager.recorderStubMap_[recorderStub2] = anotherPid;
638 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 2);
639 mediaServerManager.DestroyAVRecorderStubForPid(testPid);
640 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
641 ASSERT_TRUE(mediaServerManager.recorderStubMap_.count(recorderStub2) == 1);
642 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDER, recorderStub1);
643 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDER, recorderStub2);
644 }
645
646 /**
647 * @tc.name : Test DestroyAVRecorderStubForPid API
648 * @tc.number: DestroyAVRecorderStubForPid_003
649 * @tc.desc : Test the second if branch when itMediaProfile->second == pid.
650 */
651 HWTEST_F(MediaServerManagerUnitTest, DestroyAVRecorderStubForPid_003, TestSize.Level1)
652 {
653 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
654
655 mediaServerManager.recorderStubMap_.clear();
656 mediaServerManager.recorderProfilesStubMap_.clear();
657 sptr<IRemoteObject> mediaProfileStub =
658 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
659 pid_t testPid = TEST_NUM1;
660 mediaServerManager.recorderProfilesStubMap_[mediaProfileStub] = testPid;
661 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
662 mediaServerManager.DestroyAVRecorderStubForPid(testPid);
663 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 0);
664 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDERPROFILES, mediaProfileStub);
665 }
666
667 /**
668 * @tc.name : Test DestroyAVRecorderStubForPid API
669 * @tc.number: DestroyAVRecorderStubForPid_004
670 * @tc.desc : Test the second else branch when itMediaProfile->second != pid.
671 */
672 HWTEST_F(MediaServerManagerUnitTest, DestroyAVRecorderStubForPid_004, TestSize.Level1)
673 {
674 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
675
676 mediaServerManager.recorderStubMap_.clear();
677 mediaServerManager.recorderProfilesStubMap_.clear();
678 sptr<IRemoteObject> mediaProfileStub1 =
679 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
680 sptr<IRemoteObject> mediaProfileStub2 =
681 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
682 pid_t testPid = TEST_NUM1;
683 pid_t anotherPid = TEST_NUM2;
684 mediaServerManager.recorderProfilesStubMap_[mediaProfileStub1] = testPid;
685 mediaServerManager.recorderProfilesStubMap_[mediaProfileStub2] = anotherPid;
686 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 2);
687 mediaServerManager.DestroyAVRecorderStubForPid(testPid);
688 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
689 ASSERT_TRUE(mediaServerManager.recorderProfilesStubMap_.count(mediaProfileStub2) == 1);
690 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDERPROFILES, mediaProfileStub1);
691 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDER, mediaProfileStub2);
692 }
693
694 /**
695 * @tc.name : Test GetMemUsageForPlayer API
696 * @tc.number: GetMemUsageForPlayer_001
697 * @tc.desc : Test the first else case when stub->GetMemoryUsage() returns non-zero.
698 */
699 HWTEST_F(MediaServerManagerUnitTest, GetMemUsageForPlayer_001, TestSize.Level1)
700 {
701 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
702
703 mediaServerManager.playerStubMap_.clear();
704 mediaServerManager.playerPidMem_.clear();
705 mediaServerManager.needReleaseTaskCount_ = 0;
706 sptr<IRemoteObject> object = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
707 pid_t testPid = TEST_NUM1;
708 mediaServerManager.playerStubMap_[object] = testPid;
709 mediaServerManager.playerPidMem_[testPid] = TEST_NUM3;
710 bool result = mediaServerManager.GetMemUsageForPlayer();
711 ASSERT_EQ(mediaServerManager.playerPidMem_.size(), 1);
712 ASSERT_EQ(mediaServerManager.playerPidMem_[testPid], 1234);
713 ASSERT_TRUE(result);
714 mediaServerManager.playerStubMap_.clear();
715 mediaServerManager.playerPidMem_.clear();
716 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, object);
717 }
718
719 /**
720 * @tc.name : Test GetMemUsageForPlayer API
721 * @tc.number: GetMemUsageForPlayer_002
722 * @tc.desc : Test the second if branch when memoryList doesn't contain pid and mem != 0.
723 */
724 HWTEST_F(MediaServerManagerUnitTest, GetMemUsageForPlayer_002, TestSize.Level1)
725 {
726 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
727
728 mediaServerManager.playerStubMap_.clear();
729 mediaServerManager.playerPidMem_.clear();
730 mediaServerManager.needReleaseTaskCount_ = 0;
731 pid_t testPid = TEST_NUM1;
732 mediaServerManager.playerPidMem_[testPid] = 1024;
733 bool result = mediaServerManager.GetMemUsageForPlayer();
734 ASSERT_EQ(mediaServerManager.playerPidMem_.size(), 1);
735 ASSERT_EQ(mediaServerManager.playerPidMem_[testPid], 0);
736 ASSERT_TRUE(result);
737 mediaServerManager.playerPidMem_.clear();
738 }
739
740 /**
741 * @tc.name : Test GetMemUsageForPlayer API
742 * @tc.number: GetMemUsageForPlayer_003
743 * @tc.desc : Test when memoryList contains pid and mem != 0.
744 */
745 HWTEST_F(MediaServerManagerUnitTest, GetMemUsageForPlayer_003, TestSize.Level1)
746 {
747 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
748
749 mediaServerManager.playerStubMap_.clear();
750 mediaServerManager.playerPidMem_.clear();
751 mediaServerManager.needReleaseTaskCount_ = 0;
752 sptr<IRemoteObject> object = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
753 pid_t testPid = TEST_NUM1;
754 mediaServerManager.playerStubMap_[object] = testPid;
755 mediaServerManager.playerPidMem_[testPid] = TEST_NUM3;
756 bool result = mediaServerManager.GetMemUsageForPlayer();
757 ASSERT_EQ(mediaServerManager.playerPidMem_.size(), 1);
758 ASSERT_EQ(mediaServerManager.playerPidMem_[testPid], 1234);
759 ASSERT_TRUE(result);
760 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, object);
761 }
762
763 /**
764 * @tc.name : Test GetMemUsageForPlayer API
765 * @tc.number: GetMemUsageForPlayer_004
766 * @tc.desc : Test when memoryList doesn't contain pid and mem == 0.
767 */
768 HWTEST_F(MediaServerManagerUnitTest, GetMemUsageForPlayer_004, TestSize.Level1)
769 {
770 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
771
772 mediaServerManager.playerStubMap_.clear();
773 mediaServerManager.playerPidMem_.clear();
774 mediaServerManager.needReleaseTaskCount_ = 0;
775 pid_t testPid = TEST_NUM1;
776 mediaServerManager.playerPidMem_[testPid] = 0;
777 bool result = mediaServerManager.GetMemUsageForPlayer();
778 ASSERT_EQ(mediaServerManager.playerPidMem_.size(), 0);
779 ASSERT_FALSE(result);
780 }
781
782 /**
783 * @tc.name : Test GetMemUsageForPlayer API
784 * @tc.number: GetMemUsageForPlayer_005
785 * @tc.desc : Test when memoryList contains pid and mem == 0.
786 */
787 HWTEST_F(MediaServerManagerUnitTest, GetMemUsageForPlayer_005, TestSize.Level1)
788 {
789 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
790
791 mediaServerManager.playerStubMap_.clear();
792 mediaServerManager.playerPidMem_.clear();
793 mediaServerManager.needReleaseTaskCount_ = 0;
794 sptr<IRemoteObject> object = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
795 pid_t testPid = TEST_NUM1;
796 mediaServerManager.playerStubMap_[object] = testPid;
797 mediaServerManager.playerPidMem_[testPid] = 0;
798 bool result = mediaServerManager.GetMemUsageForPlayer();
799 ASSERT_EQ(mediaServerManager.playerPidMem_.size(), 1);
800 ASSERT_TRUE(result);
801 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, object);
802 }
803
804 /**
805 * @tc.name : Test DestoryMemoryReportTask API
806 * @tc.number: DestoryMemoryReportTask_001
807 * @tc.desc : Test memoryReportTask = nullptr.
808 * Test memoryReportTask && !memoryReportTask->IsTaskRunning()
809 */
810 HWTEST_F(MediaServerManagerUnitTest, DestoryMemoryReportTask_001, TestSize.Level1)
811 {
812 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
813
814 mediaServerManager.memoryReportTask_ = nullptr;
815 mediaServerManager.DestoryMemoryReportTask();
816 ASSERT_TRUE(mediaServerManager.memoryReportTask_ == nullptr);
817 auto mockTask = std::make_unique<MockTask>("testName");
818 EXPECT_CALL(*mockTask, IsTaskRunning()).WillRepeatedly(Return(false));
819 mediaServerManager.memoryReportTask_ = std::move(mockTask);
820 mediaServerManager.DestoryMemoryReportTask();
821 }
822
823 /**
824 * @tc.name : Test DestoryMemoryReportTask API
825 * @tc.number: DestoryMemoryReportTask_002
826 * @tc.desc : Test memoryReportTask && memoryReportTask->IsTaskRunning()
827 */
828 HWTEST_F(MediaServerManagerUnitTest, DestoryMemoryReportTask_002, TestSize.Level1)
829 {
830 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
831
832 auto mockTask = std::make_unique<MockTask>("testName");
833 EXPECT_CALL(*mockTask, IsTaskRunning()).WillRepeatedly(Return(true));
834 mediaServerManager.memoryReportTask_ = std::move(mockTask);
835 mediaServerManager.DestoryMemoryReportTask();
836 }
837 }
838 }