• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }