• 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_test.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 static const int32_t PID_TEST = 12345;
26 std::shared_ptr<MockMonitorServiceStub> g_mockMonitorServiceStub = nullptr;
27 std::shared_ptr<MockRecorderProfilesServiceStub> g_mockRecorderProfilesServiceStub = nullptr;
28 std::shared_ptr<MockTransCoderServiceStub> g_mockTransCoderServiceStub = nullptr;
SetUpTestCase(void)29 void MediaServerManagerTest::SetUpTestCase(void)
30 {
31 }
32 
TearDownTestCase(void)33 void MediaServerManagerTest::TearDownTestCase(void)
34 {
35 }
36 
SetUp(void)37 void MediaServerManagerTest::SetUp(void)
38 {
39 }
40 
TearDown(void)41 void MediaServerManagerTest::TearDown(void)
42 {
43 }
44 
45 /**
46  * @tc.name  : FreezeStubForPids_001
47  * @tc.number: FreezeStubForPids_001
48  * @tc.desc  : Test FreezeStubForPids interface
49  */
50 HWTEST_F(MediaServerManagerTest, FreezeStubForPids_001, TestSize.Level1)
51 {
52     sptr<IRemoteObject> player =
53         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
54     ASSERT_NE(player, nullptr);
55     int32_t pid = IPCSkeleton::GetCallingPid();
56     std::set<int32_t> pidList;
57     pidList.insert(pid);
58     auto isProxy = true;
59     auto ret = MediaServerManager::GetInstance().FreezeStubForPids(pidList, isProxy);
60     EXPECT_EQ(ret, 0);
61     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
62 }
63 
64 /**
65  * @tc.name  : FreezeStubForPids_002
66  * @tc.number: FreezeStubForPids_002
67  * @tc.desc  : Test FreezeStubForPids interface
68  */
69 HWTEST_F(MediaServerManagerTest, FreezeStubForPids_002, TestSize.Level1)
70 {
71     sptr<IRemoteObject> player =
72         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
73     ASSERT_NE(player, nullptr);
74     std::set<int32_t> pidList;
75     pidList.insert(PID_TEST);
76     auto isProxy = true;
77     auto ret = MediaServerManager::GetInstance().FreezeStubForPids(pidList, isProxy);
78     EXPECT_EQ(ret, 0);
79     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
80 }
81 
82 /**
83  * @tc.name  : FreezeStubForPids_003
84  * @tc.number: FreezeStubForPids_003
85  * @tc.desc  : Test FreezeStubForPids interface
86  */
87 HWTEST_F(MediaServerManagerTest, FreezeStubForPids_003, TestSize.Level1)
88 {
89     sptr<IRemoteObject> player =
90         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
91     ASSERT_NE(player, nullptr);
92     int32_t pid = IPCSkeleton::GetCallingPid();
93     std::set<int32_t> pidList;
94     pidList.insert(pid);
95     auto isProxy = false;
96     auto ret = MediaServerManager::GetInstance().FreezeStubForPids(pidList, isProxy);
97     EXPECT_EQ(ret, 0);
98     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
99 }
100 
101 /**
102  * @tc.name  : ResetAllProxy_001
103  * @tc.number: ResetAllProxy_001
104  * @tc.desc  : Test ResetAllProxy interface
105  */
106 HWTEST_F(MediaServerManagerTest, ResetAllProxy, TestSize.Level1)
107 {
108     sptr<IRemoteObject> player =
109         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
110     ASSERT_NE(player, nullptr);
111     auto ret = MediaServerManager::GetInstance().ResetAllProxy();
112     EXPECT_EQ(ret, 0);
113     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
114 }
115 
116 /**
117  * @tc.name  : DestroyStubObject_001
118  * @tc.number: DestroyStubObject_001
119  * @tc.desc  : Test DestroyStubObject interface
120  */
121 HWTEST_F(MediaServerManagerTest, DestroyStubObject_001, TestSize.Level1)
122 {
123     sptr<IRemoteObject> recorder =
124         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
125     EXPECT_NE(recorder, nullptr);
126     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDER, recorder);
127     sptr<IRemoteObject> player =
128         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
129     EXPECT_NE(player, nullptr);
130     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
131     sptr<IRemoteObject> avmetadatahelper =
132         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
133     EXPECT_NE(avmetadatahelper, nullptr);
134     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, avmetadatahelper);
135     sptr<IRemoteObject> avcodecList =
136         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
137     EXPECT_EQ(avcodecList, nullptr);
138     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODECLIST, avcodecList);
139     sptr<IRemoteObject> avcodec =
140         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
141     EXPECT_EQ(avcodec, nullptr);
142     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODEC, avcodec);
143     sptr<IRemoteObject> recorderProfiles =
144         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
145     EXPECT_NE(recorderProfiles, nullptr);
146     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDERPROFILES, recorderProfiles);
147     sptr<IRemoteObject> monitor =
148         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
149     EXPECT_NE(monitor, nullptr);
150     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::MONITOR, monitor);
151     sptr<IRemoteObject> screenCapture =
152         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
153     EXPECT_NE(screenCapture, nullptr);
154     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE, screenCapture);
155     sptr<IRemoteObject> screenCaptureController =
156         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
157     EXPECT_NE(screenCaptureController, nullptr);
158     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER,
159         screenCaptureController);
160     sptr<IRemoteObject> transcoder =
161         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
162     EXPECT_NE(transcoder, nullptr);
163     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, transcoder);
164     sptr<IRemoteObject> screenCaptureMonitor =
165         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR);
166     EXPECT_NE(screenCaptureMonitor, nullptr);
167     MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR,
168         screenCaptureMonitor);
169 }
170 
171 /**
172  * @tc.name  : DestroyStubObjectForPid_001
173  * @tc.number: DestroyStubObjectForPid_001
174  * @tc.desc  : Test DestroyStubObjectForPid interface
175  */
176 HWTEST_F(MediaServerManagerTest, DestroyStubObjectForPid_001, TestSize.Level1)
177 {
178     sptr<IRemoteObject> recorder =
179         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
180     EXPECT_NE(recorder, nullptr);
181     sptr<IRemoteObject> player =
182         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
183     EXPECT_NE(player, nullptr);
184     sptr<IRemoteObject> avmetadatahelper =
185         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
186     EXPECT_NE(avmetadatahelper, nullptr);
187     sptr<IRemoteObject> avcodecList =
188         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
189     EXPECT_EQ(avcodecList, nullptr);
190     sptr<IRemoteObject> avcodec =
191         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
192     EXPECT_EQ(avcodec, nullptr);
193     sptr<IRemoteObject> recorderProfiles =
194         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
195     EXPECT_NE(recorderProfiles, nullptr);
196     sptr<IRemoteObject> monitor =
197         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
198     EXPECT_NE(monitor, nullptr);
199     sptr<IRemoteObject> screenCapture =
200         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
201     EXPECT_NE(screenCapture, nullptr);
202     sptr<IRemoteObject> screenCaptureController =
203         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
204     EXPECT_NE(screenCaptureController, nullptr);
205     sptr<IRemoteObject> transcoder =
206         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
207     EXPECT_NE(transcoder, nullptr);
208     sptr<IRemoteObject> screenCaptureMonitor =
209         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR);
210     EXPECT_NE(screenCaptureMonitor, nullptr);
211     pid_t pid = IPCSkeleton::GetCallingPid();
212     MediaServerManager::GetInstance().DestroyStubObjectForPid(pid);
213 }
214 
215 /**
216  * @tc.name  : DestroyAVPlayerStubForPid_001
217  * @tc.number: DestroyAVPlayerStubForPid_001
218  * @tc.desc  : Test DestroyAVPlayerStubForPid interface
219  */
220 HWTEST_F(MediaServerManagerTest, DestroyAVPlayerStubForPid_001, TestSize.Level1)
221 {
222     g_mockMonitorServiceStub = std::make_shared<MockMonitorServiceStub>();
223     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
224        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
225     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
226     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
227     pid_t testPid = PID_TEST;
228     mediaServerManager.avMetadataHelperStubMap_[object] = testPid;
229     ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
230     mediaServerManager.DestroyAVPlayerStubForPid(testPid);
231     ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 0);
232 }
233 
234 /**
235  * @tc.name  : DestroyAVRecorderStubForPid_001
236  * @tc.number: DestroyAVRecorderStubForPid_001
237  * @tc.desc  : Test DestroyAVRecorderStubForPid interface
238  */
239 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStubForPid_001, TestSize.Level1)
240 {
241     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
242        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
243     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
244     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
245     pid_t testPid = PID_TEST;
246     mediaServerManager.recorderStubMap_[object] = testPid;
247     ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
248     mediaServerManager.DestroyAVRecorderStubForPid(testPid);
249     ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 0);
250 }
251 
252 /**
253  * @tc.name  : DestroyAVRecorderStubForPid_002
254  * @tc.number: DestroyAVRecorderStubForPid_002
255  * @tc.desc  : Test DestroyAVRecorderStubForPid interface
256  */
257 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStubForPid_002, TestSize.Level1)
258 {
259     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
260        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
261     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
262     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
263     pid_t testPid = PID_TEST;
264     mediaServerManager.recorderProfilesStubMap_[object] = testPid;
265     ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
266     mediaServerManager.DestroyAVRecorderStubForPid(testPid);
267     ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 0);
268 }
269 
270 /**
271  * @tc.name  : DestroyAVTranscoderStubForPid_001
272  * @tc.number: DestroyAVTranscoderStubForPid_001
273  * @tc.desc  : Test DestroyAVTranscoderStubForPid interface
274  */
275 HWTEST_F(MediaServerManagerTest, DestroyAVTranscoderStubForPid_001, TestSize.Level1)
276 {
277     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
278        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
279     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
280     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
281     pid_t testPid = PID_TEST;
282     mediaServerManager.transCoderStubMap_[object] = testPid;
283     ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
284     mediaServerManager.DestroyAVTranscoderStubForPid(testPid);
285     ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 0);
286 }
287 
288 /**
289  * @tc.name  : DestroyAVCodecStubForPid_001
290  * @tc.number: DestroyAVCodecStubForPid_001
291  * @tc.desc  : Test DestroyAVCodecStubForPid interface
292  */
293 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStubForPid_001, TestSize.Level1)
294 {
295     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
296        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
297     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
298     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
299     pid_t testPid = PID_TEST;
300     mediaServerManager.avCodecStubMap_[object] = testPid;
301     ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
302     mediaServerManager.DestroyAVCodecStubForPid(testPid);
303     ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
304 }
305 
306 /**
307  * @tc.name  : DestroyAVCodecStubForPid_002
308  * @tc.number: DestroyAVCodecStubForPid_002
309  * @tc.desc  : Test DestroyAVCodecStubForPid interface
310  */
311 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStubForPid_002, TestSize.Level1)
312 {
313     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
314        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
315     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
316     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
317     pid_t testPid = PID_TEST;
318     mediaServerManager.avCodecListStubMap_[object] = testPid;
319     ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
320     mediaServerManager.DestroyAVCodecStubForPid(testPid);
321     ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 0);
322 }
323 
324 /**
325  * @tc.name  : DestroyAVScreenCaptureStubForPid_001
326  * @tc.number: DestroyAVScreenCaptureStubForPid_001
327  * @tc.desc  : Test DestroyAVScreenCaptureStubForPid interface
328  */
329 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStubForPid_001, TestSize.Level1)
330 {
331     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
332        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
333     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
334     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
335     pid_t testPid = PID_TEST;
336     mediaServerManager.screenCaptureStubMap_[object] = testPid;
337     ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 1);
338     mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
339     ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 0);
340 }
341 
342 /**
343  * @tc.name  : DestroyAVScreenCaptureStubForPid_002
344  * @tc.number: DestroyAVScreenCaptureStubForPid_002
345  * @tc.desc  : Test DestroyAVScreenCaptureStubForPid interface
346  */
347 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStubForPid_002, TestSize.Level1)
348 {
349     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
350        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
351     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
352     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
353     pid_t testPid = PID_TEST;
354     mediaServerManager.screenCaptureMonitorStubMap_[object] = testPid;
355     ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
356     mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
357     ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 0);
358 }
359 
360 /**
361  * @tc.name  : DestroyAVScreenCaptureStubForPid_003
362  * @tc.number: DestroyAVScreenCaptureStubForPid_003
363  * @tc.desc  : Test DestroyAVScreenCaptureStubForPid interface
364  */
365 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStubForPid_003, TestSize.Level1)
366 {
367     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
368        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
369     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
370     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
371     pid_t testPid = PID_TEST;
372     mediaServerManager.screenCaptureControllerStubMap_[object] = testPid;
373     ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
374     mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
375     ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 0);
376 }
377 
378 /**
379  * @tc.name  : DestroyStubObject_002
380  * @tc.number: DestroyStubObject_002
381  * @tc.desc  : Test DestroyStubObject interface
382  */
383 HWTEST_F(MediaServerManagerTest, DestroyStubObject_002, TestSize.Level1)
384 {
385     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
386        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
387     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
388     sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
389     ASSERT_NE(object, nullptr);
390     pid_t testPid = IPCSkeleton::GetCallingPid();
391     mediaServerManager.avCodecStubMap_[object] = testPid;
392     ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
393     mediaServerManager.DestroyStubObject(MediaServerManager::StubType::AVCODEC, object);
394     ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
395 }
396 
397 /**
398  * @tc.name  : DestroyAVScreenCaptureStub_001
399  * @tc.number: DestroyAVScreenCaptureStub_001
400  * @tc.desc  : Test DestroyAVScreenCaptureStub interface
401  */
402 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStub_001, TestSize.Level1)
403 {
404     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
405        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
406     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
407     sptr<IRemoteObject> object1 = nullptr;
408     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
409     pid_t testPid = 1;
410     mediaServerManager.screenCaptureControllerStubMap_[object2] = testPid;
411     ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
412     mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE, object1, testPid);
413     ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
414 }
415 
416 /**
417  * @tc.name  : DestroyAVScreenCaptureStub_002
418  * @tc.number: DestroyAVScreenCaptureStub_002
419  * @tc.desc  : Test DestroyAVScreenCaptureStub interface
420  */
421 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStub_002, TestSize.Level1)
422 {
423     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
424        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
425     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
426     sptr<IRemoteObject> object1 = nullptr;
427     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
428     pid_t testPid = 2;
429     mediaServerManager.screenCaptureMonitorStubMap_[object2] = testPid;
430     ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
431     mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR,
432         object1, testPid);
433     ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
434 }
435 
436 /**
437  * @tc.name  : DestroyAVScreenCaptureStub_003
438  * @tc.number: DestroyAVScreenCaptureStub_003
439  * @tc.desc  : Test DestroyAVScreenCaptureStub interface
440  */
441 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStub_003, TestSize.Level1)
442 {
443     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
444        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
445     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
446     sptr<IRemoteObject> object1 = nullptr;
447     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
448     pid_t testPid = 3;
449     mediaServerManager.screenCaptureControllerStubMap_[object2] = testPid;
450     ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
451     mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE_CONTROLLER,
452         object1, testPid);
453     ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
454     mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::TRANSCODER, object1, testPid);
455 }
456 
457 /**
458  * @tc.name  : DestroyAVPlayerStub_001
459  * @tc.number: DestroyAVPlayerStub_001
460  * @tc.desc  : Test DestroyAVPlayerStub interface
461  */
462 HWTEST_F(MediaServerManagerTest, DestroyAVPlayerStub_001, TestSize.Level1)
463 {
464     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
465        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
466     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
467     sptr<IRemoteObject> object1 = nullptr;
468     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
469     pid_t pid = IPCSkeleton::GetCallingPid();
470     mediaServerManager.playerStubMap_[object2] = pid;
471     ASSERT_EQ(mediaServerManager.playerStubMap_.size(), 1);
472     mediaServerManager.DestroyAVPlayerStub(MediaServerManager::StubType::PLAYER, object1, pid);
473     ASSERT_EQ(mediaServerManager.playerStubMap_.size(), 1);
474 }
475 
476 /**
477  * @tc.name  : DestroyAVPlayerStub_002
478  * @tc.number: DestroyAVPlayerStub_002
479  * @tc.desc  : Test DestroyAVPlayerStub interface
480  */
481 HWTEST_F(MediaServerManagerTest, DestroyAVPlayerStub_002, TestSize.Level1)
482 {
483     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
484        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
485     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
486     sptr<IRemoteObject> object1 = nullptr;
487     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
488     pid_t pid = IPCSkeleton::GetCallingPid();
489     mediaServerManager.avMetadataHelperStubMap_[object2] = pid;
490     ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
491     mediaServerManager.DestroyAVPlayerStub(MediaServerManager::StubType::AVMETADATAHELPER, object1, pid);
492     ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
493     mediaServerManager.DestroyAVPlayerStub(MediaServerManager::StubType::RECORDER, object1, pid);
494 }
495 
496 /**
497  * @tc.name  : DestroyAVRecorderStub_001
498  * @tc.number: DestroyAVRecorderStub_001
499  * @tc.desc  : Test DestroyAVRecorderStub interface
500  */
501 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStub_001, TestSize.Level1)
502 {
503     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
504        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
505     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
506     sptr<IRemoteObject> object1 = nullptr;
507     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
508     pid_t pid = IPCSkeleton::GetCallingPid();
509     mediaServerManager.recorderStubMap_[object2] = pid;
510     ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
511     mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDER, object1, pid);
512     ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
513 }
514 
515 /**
516  * @tc.name  : DestroyAVRecorderStub_002
517  * @tc.number: DestroyAVRecorderStub_002
518  * @tc.desc  : Test DestroyAVRecorderStub interface
519  */
520 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStub_002, TestSize.Level1)
521 {
522     g_mockRecorderProfilesServiceStub = std::make_shared<MockRecorderProfilesServiceStub>();
523     ON_CALL(*g_mockRecorderProfilesServiceStub, GetInstance()).WillByDefault(testing::Return(
524         sptr<OHOS::Media::RecorderProfilesServiceStub>(g_mockRecorderProfilesServiceStub.get())));
525     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
526     sptr<IRemoteObject> object =
527         MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
528     pid_t pid = IPCSkeleton::GetCallingPid();
529     mediaServerManager.recorderProfilesStubMap_[object] = pid;
530     ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
531     mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDERPROFILES, object, pid);
532     ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 0);
533     mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::SCREEN_CAPTURE, object, pid);
534 }
535 
536 /**
537  * @tc.name  : DestroyAVTransCoderStub_001
538  * @tc.number: DestroyAVTransCoderStub_001
539  * @tc.desc  : Test DestroyAVTransCoderStub interface
540  */
541 HWTEST_F(MediaServerManagerTest, DestroyAVTransCoderStub_001, TestSize.Level1)
542 {
543     g_mockTransCoderServiceStub = std::make_shared<MockTransCoderServiceStub>();
544     ON_CALL(*g_mockTransCoderServiceStub, GetInstance())
545        .WillByDefault(testing::Return(sptr<OHOS::Media::TransCoderServiceStub>(g_mockTransCoderServiceStub.get())));
546     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
547     sptr<IRemoteObject> object1 = nullptr;
548     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
549     pid_t pid = IPCSkeleton::GetCallingPid();
550     mediaServerManager.transCoderStubMap_[object2] = pid;
551     ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
552     mediaServerManager.DestroyAVTransCoderStub(MediaServerManager::StubType::TRANSCODER, object1, pid);
553     ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
554     mediaServerManager.DestroyAVTransCoderStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR, object1, pid);
555 }
556 
557 /**
558  * @tc.name  : DestroyAVCodecStub_001
559  * @tc.number: DestroyAVCodecStub_001
560  * @tc.desc  : Test DestroyAVCodecStub interface
561  */
562 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStub_001, TestSize.Level1)
563 {
564     ON_CALL(*g_mockTransCoderServiceStub, GetInstance())
565        .WillByDefault(testing::Return(sptr<OHOS::Media::TransCoderServiceStub>(g_mockTransCoderServiceStub.get())));
566     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
567     sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
568     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
569     pid_t pid = IPCSkeleton::GetCallingPid();
570     mediaServerManager.avCodecStubMap_[object2] = pid;
571     ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
572     mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODEC, object1, pid);
573     ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
574     mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODEC, object2, pid);
575     ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
576 }
577 
578 /**
579  * @tc.name  : DestroyAVCodecStub_002
580  * @tc.number: DestroyAVCodecStub_002
581  * @tc.desc  : Test DestroyStubObjectForPid interface
582  */
583 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStub_002, TestSize.Level1)
584 {
585     ON_CALL(*g_mockTransCoderServiceStub, GetInstance())
586        .WillByDefault(testing::Return(sptr<OHOS::Media::TransCoderServiceStub>(g_mockTransCoderServiceStub.get())));
587     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
588     sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
589     sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
590     pid_t pid = IPCSkeleton::GetCallingPid();
591     mediaServerManager.avCodecListStubMap_[object2] = pid;
592     ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
593     mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODECLIST, object1, pid);
594     ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
595     mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODECLIST, object2, pid);
596     ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 0);
597     mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR, object2, pid);
598 }
599 
600 /**
601  * @tc.name  : CreateStubObject_002
602  * @tc.number: CreateStubObject_002
603  * @tc.desc  : Test CreateStubObject interface
604  */
605 HWTEST_F(MediaServerManagerTest, CreateStubObject_002, TestSize.Level1)
606 {
607     ON_CALL(*g_mockMonitorServiceStub, GetInstance())
608        .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
609     ON_CALL(*g_mockRecorderProfilesServiceStub, GetInstance())
610        .WillByDefault(testing::Return(sptr<OHOS::Media::RecorderProfilesServiceStub>
611         (g_mockRecorderProfilesServiceStub.get())));
612     MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
613     sptr<IRemoteObject> object1 = mediaServerManager.GetMonitorStubObject();
614     pid_t testPid = PID_TEST;
615     mediaServerManager.recorderProfilesStubMap_[object1] = testPid;
616     ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
617     sptr<IRemoteObject> object2 = mediaServerManager.CreateStubObject(MediaServerManager::StubType::RECORDERPROFILES);
618     ASSERT_NE(object2, nullptr);
619 }
620 }
621 }