1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include "display_manager_lite.h"
18 #include "mock_display_manager_adapter_lite.h"
19 #include "singleton_mocker.h"
20 #include "display_manager_lite.cpp"
21 
22 using namespace testing;
23 using namespace testing::ext;
24 
25 namespace OHOS {
26 namespace Rosen {
27 using Mocker = SingletonMocker<DisplayManagerAdapterLite, MockDisplayManagerAdapterLite>;
28 class DmMockDisplayListener : public DisplayManagerLite::IDisplayListener {
29 public:
30     void OnCreate(DisplayId) override {}
31     void OnDestroy(DisplayId) override {}
32     void OnChange(DisplayId) override {}
33 };
34 class DmMockFoldStatusListener : public DisplayManagerLite::IFoldStatusListener {
35 public:
OnFoldStatusChanged([[maybe_unused]]FoldStatus foldStatus)36     virtual void OnFoldStatusChanged([[maybe_unused]]FoldStatus foldStatus) {}
37 };
38 class DisplayManagerTest : public testing::Test {
39 public:
40     static void SetUpTestCase();
41     static void TearDownTestCase();
42     void SetUp() override;
43     void TearDown() override;
44 };
45 
SetUpTestCase()46 void DisplayManagerTest::SetUpTestCase()
47 {
48 }
49 
TearDownTestCase()50 void DisplayManagerTest::TearDownTestCase()
51 {
52 }
53 
SetUp()54 void DisplayManagerTest::SetUp()
55 {
56 }
57 
TearDown()58 void DisplayManagerTest::TearDown()
59 {
60 }
61 
62 namespace {
63 /**
64  * @tc.name: OnDisplayCreate01
65  * @tc.desc: OnDisplayCreate
66  * @tc.type: FUNC
67  */
HWTEST_F(DisplayManagerTest, OnDisplayCreate01, Function | SmallTest | Level1)68 HWTEST_F(DisplayManagerTest, OnDisplayCreate01, Function | SmallTest | Level1)
69 {
70     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
71     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
72     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
73     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
74     auto displayManagerListener = DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_;
75     ASSERT_NE(displayManagerListener, nullptr);
76     displayManagerListener->OnDisplayCreate(nullptr);
77     sptr<DisplayInfo> displayInfo = new DisplayInfo();
78     displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
79     displayManagerListener->OnDisplayCreate(displayInfo);
80     displayInfo->SetDisplayId(0);
81     displayManagerListener->OnDisplayCreate(displayInfo);
82     ASSERT_NE(displayManagerListener->pImpl_, nullptr);
83     displayManagerListener->pImpl_ = nullptr;
84     displayManagerListener->OnDisplayCreate(displayInfo);
85     DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_ = nullptr;
86 }
87 
88 /**
89  * @tc.name: OnDisplayDestroy
90  * @tc.desc: OnDisplayDestroy
91  * @tc.type: FUNC
92  */
HWTEST_F(DisplayManagerTest, OnDisplayDestroy, Function | SmallTest | Level1)93 HWTEST_F(DisplayManagerTest, OnDisplayDestroy, Function | SmallTest | Level1)
94 {
95     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
96     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
97     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
98     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
99     auto displayManagerListener = DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_;
100     ASSERT_NE(displayManagerListener, nullptr);
101     displayManagerListener->OnDisplayDestroy(DISPLAY_ID_INVALID);
102     displayManagerListener->OnDisplayDestroy(0);
103     displayManagerListener->pImpl_ = nullptr;
104     displayManagerListener->OnDisplayDestroy(1);
105     DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_ = nullptr;
106 }
107 
108 /**
109  * @tc.name: OnDisplayChange
110  * @tc.desc: OnDisplayChange
111  * @tc.type: FUNC
112  */
HWTEST_F(DisplayManagerTest, OnDisplayChange, Function | SmallTest | Level1)113 HWTEST_F(DisplayManagerTest, OnDisplayChange, Function | SmallTest | Level1)
114 {
115     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
116     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
117     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
118     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
119     auto displayManagerListener = DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_;
120     ASSERT_NE(displayManagerListener, nullptr);
121     DisplayChangeEvent event = DisplayChangeEvent::DISPLAY_SIZE_CHANGED;
122     displayManagerListener->OnDisplayChange(nullptr, event);
123     sptr<DisplayInfo> displayInfo = new DisplayInfo();
124     displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
125     displayManagerListener->OnDisplayChange(displayInfo, event);
126     displayInfo->SetDisplayId(0);
127     displayManagerListener->OnDisplayChange(displayInfo, event);
128     ASSERT_NE(displayManagerListener->pImpl_, nullptr);
129     displayManagerListener->pImpl_ = nullptr;
130     displayManagerListener->OnDisplayChange(displayInfo, event);
131     DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_ = nullptr;
132 }
133 
134 /**
135  * @tc.name: ImplUpdateDisplayInfoLocked
136  * @tc.desc: ImplUpdateDisplayInfoLocked fun
137  * @tc.type: FUNC
138  */
HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked, Function | SmallTest | Level1)139 HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked, Function | SmallTest | Level1)
140 {
141     sptr<DisplayInfo> displayInfo = new DisplayInfo();
142     displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
143     auto ret = DisplayManagerLite::GetInstance().pImpl_->UpdateDisplayInfoLocked(displayInfo);
144     ASSERT_EQ(ret, false);
145     displayInfo.clear();
146 }
147 
148 /**
149  * @tc.name: ImplUpdateDisplayInfoLocked
150  * @tc.desc: ImplUpdateDisplayInfoLocked fun
151  * @tc.type: FUNC
152  */
HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked01, Function | SmallTest | Level1)153 HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked01, Function | SmallTest | Level1)
154 {
155     sptr<DisplayInfo> displayInfo = nullptr;
156     auto ret = DisplayManagerLite::GetInstance().pImpl_->UpdateDisplayInfoLocked(displayInfo);
157     ASSERT_EQ(ret, false);
158     displayInfo.clear();
159 }
160 
161 /**
162  * @tc.name: RegisterDisplayListener
163  * @tc.desc: displayManagerListener_ == nullptr, ret == DMError::DM_OK
164  * @tc.type: FUNC
165  */
HWTEST_F(DisplayManagerTest, RegisterDisplayListener01, Function | SmallTest | Level1)166 HWTEST_F(DisplayManagerTest, RegisterDisplayListener01, Function | SmallTest | Level1)
167 {
168     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
169     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
170     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
171     DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_ = nullptr;
172     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
173     auto displayManagerListener = DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_;
174     ASSERT_NE(displayManagerListener, nullptr);
175 }
176 
177 /**
178  * @tc.name: RegisterDisplayListener
179  * @tc.desc: ret ! = DMError::DM_OK
180  * @tc.type: FUNC
181  */
HWTEST_F(DisplayManagerTest, RegisterDisplayListener02, Function | SmallTest | Level1)182 HWTEST_F(DisplayManagerTest, RegisterDisplayListener02, Function | SmallTest | Level1)
183 {
184     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
185     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
186     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
187     DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_ = nullptr;
188     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
189     auto displayManagerListener = DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_;
190     ASSERT_EQ(displayManagerListener, nullptr);
191 }
192 
193 /**
194  * @tc.name: RegisterDisplayListener
195  * @tc.desc: listener == nullptr
196  * @tc.type: FUNC
197  */
HWTEST_F(DisplayManagerTest, RegisterDisplayListener03, Function | SmallTest | Level1)198 HWTEST_F(DisplayManagerTest, RegisterDisplayListener03, Function | SmallTest | Level1)
199 {
200     sptr<DisplayManagerLite::IDisplayListener> listener = nullptr;
201     auto ret = DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
202     ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
203 }
204 
205 /**
206  * @tc.name: RegisterDisplayListener
207  * @tc.desc: displayManagerListener_ != nullptr
208  * @tc.type: FUNC
209  */
HWTEST_F(DisplayManagerTest, RegisterDisplayListener04, Function | SmallTest | Level1)210 HWTEST_F(DisplayManagerTest, RegisterDisplayListener04, Function | SmallTest | Level1)
211 {
212     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
213     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
214     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
215     sptr<DisplayManagerLite::IDisplayListener> listener1 = new DmMockDisplayListener();
216     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
217     auto ret = DisplayManagerLite::GetInstance().RegisterDisplayListener(listener1);
218     ASSERT_EQ(ret, DMError::DM_OK);
219 }
220 
221 /**
222  * @tc.name: UnregisterDisplayListener
223  * @tc.desc: listener == nullptr
224  * @tc.type: FUNC
225  */
HWTEST_F(DisplayManagerTest, UnregisterDisplayListener01, Function | SmallTest | Level1)226 HWTEST_F(DisplayManagerTest, UnregisterDisplayListener01, Function | SmallTest | Level1)
227 {
228     sptr<DisplayManagerLite::IDisplayListener> listener = nullptr;
229     auto ret = DisplayManagerLite::GetInstance().UnregisterDisplayListener(listener);
230     ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
231 }
232 
233 /**
234  * @tc.name: UnregisterDisplayListener
235  * @tc.desc: iter == displayListeners_.end()
236  * @tc.type: FUNC
237  */
HWTEST_F(DisplayManagerTest, UnregisterDisplayListener02, Function | SmallTest | Level1)238 HWTEST_F(DisplayManagerTest, UnregisterDisplayListener02, Function | SmallTest | Level1)
239 {
240     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
241     auto ret = DisplayManagerLite::GetInstance().UnregisterDisplayListener(listener);
242     ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
243 }
244 
245 /**
246  * @tc.name: UnregisterDisplayListener
247  * @tc.desc: iter == displayListeners_.end()
248  * @tc.type: FUNC
249  */
HWTEST_F(DisplayManagerTest, UnregisterDisplayListener03, Function | SmallTest | Level1)250 HWTEST_F(DisplayManagerTest, UnregisterDisplayListener03, Function | SmallTest | Level1)
251 {
252     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
253     DisplayManagerLite::GetInstance().pImpl_->displayListeners_.insert(listener);
254     auto ret = DisplayManagerLite::GetInstance().UnregisterDisplayListener(listener);
255     ASSERT_EQ(ret, DMError::DM_OK);
256 }
257 
258 /**
259  * @tc.name: RegisterFoldStatusListener
260  * @tc.desc: listener == nullptr
261  * @tc.type: FUNC
262  */
HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener01, Function | SmallTest | Level1)263 HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener01, Function | SmallTest | Level1)
264 {
265     sptr<DisplayManagerLite::IFoldStatusListener> listener = nullptr;
266     auto ret = DisplayManagerLite::GetInstance().RegisterFoldStatusListener(listener);
267     ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
268 }
269 
270 /**
271  * @tc.name: RegisterFoldStatusListener
272  * @tc.desc: listener == nullptr
273  * @tc.type: FUNC
274  */
HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener02, Function | SmallTest | Level1)275 HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener02, Function | SmallTest | Level1)
276 {
277     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
278     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
279     sptr<DisplayManagerLite::IFoldStatusListener> listener = new DmMockFoldStatusListener();
280     auto ret = DisplayManagerLite::GetInstance().RegisterFoldStatusListener(listener);
281     ASSERT_EQ(ret, DMError::DM_OK);
282     DisplayManagerLite::GetInstance().pImpl_->foldStatusListenerAgent_ = nullptr;
283 }
284 
285 /**
286  * @tc.name: RegisterFoldStatusListener
287  * @tc.desc: foldStatusListenerAgent_ == nullptr, ret != DMError::DM_OK
288  * @tc.type: FUNC
289  */
HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener03, Function | SmallTest | Level1)290 HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener03, Function | SmallTest | Level1)
291 {
292     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
293     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
294     sptr<DisplayManagerLite::IFoldStatusListener> listener = new DmMockFoldStatusListener();
295     DisplayManagerLite::GetInstance().RegisterFoldStatusListener(listener);
296     ASSERT_EQ(DisplayManagerLite::GetInstance().pImpl_->foldStatusListenerAgent_, nullptr);
297 }
298 
299 /**
300  * @tc.name: RegisterFoldStatusListener
301  * @tc.desc: foldStatusListenerAgent_ != nullptr, ret == DMError::DM_OK
302  * @tc.type: FUNC
303  */
HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener04, Function | SmallTest | Level1)304 HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener04, Function | SmallTest | Level1)
305 {
306     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
307     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
308     sptr<DisplayManagerLite::IFoldStatusListener> listener = new DmMockFoldStatusListener();
309     sptr<DisplayManagerLite::IFoldStatusListener> listener1 = new DmMockFoldStatusListener();
310     DisplayManagerLite::GetInstance().RegisterFoldStatusListener(listener);
311     auto ret = DisplayManagerLite::GetInstance().RegisterFoldStatusListener(listener1);
312     ASSERT_EQ(ret, DMError::DM_OK);
313 }
314 
315 /**
316  * @tc.name: UnregisterFoldStatusListener
317  * @tc.desc: foldStatusListenerAgent_ != nullptr, ret == DMError::DM_OK
318  * @tc.type: FUNC
319  */
HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener01, Function | SmallTest | Level1)320 HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener01, Function | SmallTest | Level1)
321 {
322     sptr<DisplayManagerLite::IFoldStatusListener> listener = nullptr;
323     auto ret = DisplayManagerLite::GetInstance().UnregisterFoldStatusListener(listener);
324     ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
325 }
326 
327 /**
328  * @tc.name: UnregisterFoldStatusListener
329  * @tc.desc: iter == foldStatusListeners_.end()
330  * @tc.type: FUNC
331  */
HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener02, Function | SmallTest | Level1)332 HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener02, Function | SmallTest | Level1)
333 {
334     sptr<DisplayManagerLite::IFoldStatusListener> listener = new DmMockFoldStatusListener();
335     auto ret = DisplayManagerLite::GetInstance().UnregisterFoldStatusListener(listener);
336     ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
337 }
338 
339 /**
340  * @tc.name: UnregisterFoldStatusListener
341  * @tc.desc: iter != foldStatusListeners_.end()
342  * @tc.type: FUNC
343  */
HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener03, Function | SmallTest | Level1)344 HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener03, Function | SmallTest | Level1)
345 {
346     sptr<DisplayManagerLite::IFoldStatusListener> listener = new DmMockFoldStatusListener();
347     DisplayManagerLite::GetInstance().pImpl_->foldStatusListeners_.insert(listener);
348     auto ret = DisplayManagerLite::GetInstance().UnregisterFoldStatusListener(listener);
349     ASSERT_EQ(ret, DMError::DM_OK);
350 }
351 
352 /**
353  * @tc.name: GetDefaultDisplay
354  * @tc.desc: GetDefaultDisplay
355  * @tc.type: FUNC
356  */
HWTEST_F(DisplayManagerTest, GetDefaultDisplay, Function | SmallTest | Level1)357 HWTEST_F(DisplayManagerTest, GetDefaultDisplay, Function | SmallTest | Level1)
358 {
359     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
360     EXPECT_CALL(m->Mock(), GetDefaultDisplayInfo()).Times(1).WillOnce(Return(nullptr));
361     auto ret = DisplayManagerLite::GetInstance().GetDefaultDisplay();
362     ASSERT_EQ(ret, nullptr);
363 }
364 
365 /**
366  * @tc.name: GetDisplayById
367  * @tc.desc: destroyed_ == false
368  * @tc.type: FUNC
369  */
HWTEST_F(DisplayManagerTest, GetDisplayById01, Function | SmallTest | Level1)370 HWTEST_F(DisplayManagerTest, GetDisplayById01, Function | SmallTest | Level1)
371 {
372     DisplayId displayId = 1000;
373     auto ret = DisplayManagerLite::GetInstance().GetDisplayById(displayId);
374     ASSERT_EQ(ret, nullptr);
375 }
376 
377 /**
378  * @tc.name: GetDisplayById
379  * @tc.desc: UpdateDisplayInfoLocked
380  * @tc.type: FUNC
381  */
HWTEST_F(DisplayManagerTest, GetDisplayById02, Function | SmallTest | Level1)382 HWTEST_F(DisplayManagerTest, GetDisplayById02, Function | SmallTest | Level1)
383 {
384     DisplayManagerLite::GetInstance().destroyed_ = false;
385     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
386     EXPECT_CALL(m->Mock(), GetDisplayInfo(_)).Times(1).WillOnce(Return(nullptr));
387     DisplayId displayId = 1000;
388     auto ret = DisplayManagerLite::GetInstance().GetDisplayById(displayId);
389     ASSERT_EQ(ret, nullptr);
390 }
391 
392 /**
393  * @tc.name: OnDisplayCreate02
394  * @tc.desc: OnDisplayCreate
395  * @tc.type: FUNC
396  */
HWTEST_F(DisplayManagerTest, OnDisplayCreate02, Function | SmallTest | Level1)397 HWTEST_F(DisplayManagerTest, OnDisplayCreate02, Function | SmallTest | Level1)
398 {
399     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
400     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
401     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
402     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
403     auto displayManagerListener = DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_;
404     ASSERT_NE(displayManagerListener, nullptr);
405     displayManagerListener->OnDisplayCreate(nullptr);
406     sptr<DisplayInfo> displayInfo = new DisplayInfo();
407     displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
408     displayManagerListener->OnDisplayCreate(displayInfo);
409     displayInfo->SetDisplayId(1000);
410     displayManagerListener->OnDisplayCreate(displayInfo);
411     ASSERT_NE(displayManagerListener->pImpl_, nullptr);
412     displayManagerListener->pImpl_ = nullptr;
413     displayManagerListener->OnDisplayCreate(displayInfo);
414     DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_ = nullptr;
415 }
416 
417 /**
418  * @tc.name: OnDisplayDestroy02
419  * @tc.desc: OnDisplayDestroy02
420  * @tc.type: FUNC
421  */
HWTEST_F(DisplayManagerTest, OnDisplayDestroy02, Function | SmallTest | Level1)422 HWTEST_F(DisplayManagerTest, OnDisplayDestroy02, Function | SmallTest | Level1)
423 {
424     std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
425     EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
426     sptr<DisplayManagerLite::IDisplayListener> listener = new DmMockDisplayListener();
427     DisplayManagerLite::GetInstance().RegisterDisplayListener(listener);
428     auto displayManagerListener = DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_;
429     ASSERT_NE(displayManagerListener, nullptr);
430     displayManagerListener->OnDisplayDestroy(DISPLAY_ID_INVALID);
431     displayManagerListener->OnDisplayDestroy(10);
432     displayManagerListener->pImpl_ = nullptr;
433     displayManagerListener->OnDisplayDestroy(1000);
434     DisplayManagerLite::GetInstance().pImpl_->displayManagerListener_ = nullptr;
435 }
436 
437 /**
438  * @tc.name: ImplUpdateDisplayInfoLocked
439  * @tc.desc: ImplUpdateDisplayInfoLocked fun
440  * @tc.type: FUNC
441  */
HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked03, Function | SmallTest | Level1)442 HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked03, Function | SmallTest | Level1)
443 {
444     sptr<DisplayInfo> displayInfo = new DisplayInfo();
445     displayInfo->SetDisplayId(10);
446     auto ret = DisplayManagerLite::GetInstance().pImpl_->UpdateDisplayInfoLocked(displayInfo);
447     ASSERT_EQ(ret, false);
448     displayInfo.clear();
449 }
450 
451 /**
452  * @tc.name: ImplUpdateDisplayInfoLocked
453  * @tc.desc: ImplUpdateDisplayInfoLocked fun
454  * @tc.type: FUNC
455  */
HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked04, Function | SmallTest | Level1)456 HWTEST_F(DisplayManagerTest, ImplUpdateDisplayInfoLocked04, Function | SmallTest | Level1)
457 {
458     sptr<DisplayInfo> displayInfo = new DisplayInfo();
459     displayInfo->SetDisplayId(1000);
460     auto ret = DisplayManagerLite::GetInstance().pImpl_->UpdateDisplayInfoLocked(displayInfo);
461     ASSERT_EQ(ret, false);
462     displayInfo.clear();
463 }
464 
465 /**
466  * @tc.name: GetDisplayById
467  * @tc.desc: destroyed_ == false
468  * @tc.type: FUNC
469  */
HWTEST_F(DisplayManagerTest, GetDisplayById03, Function | SmallTest | Level1)470 HWTEST_F(DisplayManagerTest, GetDisplayById03, Function | SmallTest | Level1)
471 {
472     DisplayId displayId = DISPLAY_ID_INVALID;
473     auto ret = DisplayManagerLite::GetInstance().GetDisplayById(displayId);
474     ASSERT_EQ(ret, nullptr);
475 }
476 
477 /**
478  * @tc.name: GetDisplayById
479  * @tc.desc: destroyed_ == false
480  * @tc.type: FUNC
481  */
HWTEST_F(DisplayManagerTest, GetDisplayById04, Function | SmallTest | Level1)482 HWTEST_F(DisplayManagerTest, GetDisplayById04, Function | SmallTest | Level1)
483 {
484     DisplayId displayId = 10;
485     auto ret = DisplayManagerLite::GetInstance().GetDisplayById(displayId);
486     ASSERT_EQ(ret, nullptr);
487 }
488 
489 /**
490  * @tc.name: IsFoldable
491  * @tc.desc: IsFoldable
492  * @tc.type: FUNC
493  */
HWTEST_F(DisplayManagerTest, IsFoldable, Function | SmallTest | Level1)494 HWTEST_F(DisplayManagerTest, IsFoldable, Function | SmallTest | Level1)
495 {
496     sptr<DisplayInfo> displayInfo = nullptr;
497     auto ret = DisplayManagerLite::GetInstance().pImpl_->IsFoldable();
498     ASSERT_EQ(ret, false);
499     displayInfo.clear();
500 }
501 
502 /**
503  * @tc.name: IsFoldable01
504  * @tc.desc: IsFoldable01
505  * @tc.type: FUNC
506  */
HWTEST_F(DisplayManagerTest, IsFoldable01, Function | SmallTest | Level1)507 HWTEST_F(DisplayManagerTest, IsFoldable01, Function | SmallTest | Level1)
508 {
509     sptr<DisplayInfo> displayInfo = new DisplayInfo();
510     displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
511     auto ret = DisplayManagerLite::GetInstance().pImpl_->IsFoldable();
512     ASSERT_EQ(ret, false);
513     displayInfo.clear();
514 }
515 
516 /**
517  * @tc.name: IsFoldable02
518  * @tc.desc: IsFoldable02
519  * @tc.type: FUNC
520  */
HWTEST_F(DisplayManagerTest, IsFoldable02, Function | SmallTest | Level1)521 HWTEST_F(DisplayManagerTest, IsFoldable02, Function | SmallTest | Level1)
522 {
523     sptr<DisplayInfo> displayInfo = new DisplayInfo();
524     displayInfo->SetDisplayId(10);
525     auto ret = DisplayManagerLite::GetInstance().pImpl_->IsFoldable();
526     ASSERT_EQ(ret, false);
527     displayInfo.clear();
528 }
529 
530 /**
531  * @tc.name: GetFoldStatus
532  * @tc.desc: GetFoldStatus
533  * @tc.type: FUNC
534  */
HWTEST_F(DisplayManagerTest, GetFoldStatus, Function | SmallTest | Level1)535 HWTEST_F(DisplayManagerTest, GetFoldStatus, Function | SmallTest | Level1)
536 {
537     sptr<DisplayInfo> displayInfo = nullptr;
538     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldStatus();
539     ASSERT_EQ(ret, FoldStatus::UNKNOWN);
540     displayInfo.clear();
541 }
542 
543 /**
544  * @tc.name: GetFoldStatus01
545  * @tc.desc: GetFoldStatus01
546  * @tc.type: FUNC
547  */
HWTEST_F(DisplayManagerTest, GetFoldStatus01, Function | SmallTest | Level1)548 HWTEST_F(DisplayManagerTest, GetFoldStatus01, Function | SmallTest | Level1)
549 {
550     sptr<DisplayInfo> displayInfo = new DisplayInfo();
551     displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
552     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldStatus();
553     ASSERT_EQ(ret, FoldStatus::UNKNOWN);
554     displayInfo.clear();
555 }
556 
557 /**
558  * @tc.name: GetFoldStatus02
559  * @tc.desc: GetFoldStatus02
560  * @tc.type: FUNC
561  */
HWTEST_F(DisplayManagerTest, GetFoldStatus02, Function | SmallTest | Level1)562 HWTEST_F(DisplayManagerTest, GetFoldStatus02, Function | SmallTest | Level1)
563 {
564     sptr<DisplayInfo> displayInfo = new DisplayInfo();
565     displayInfo->SetDisplayId(10);
566     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldStatus();
567     ASSERT_EQ(ret, FoldStatus::UNKNOWN);
568     displayInfo.clear();
569 }
570 
571 /**
572  * @tc.name: GetFoldStatus03
573  * @tc.desc: GetFoldStatus03
574  * @tc.type: FUNC
575  */
HWTEST_F(DisplayManagerTest, GetFoldStatus03, Function | SmallTest | Level1)576 HWTEST_F(DisplayManagerTest, GetFoldStatus03, Function | SmallTest | Level1)
577 {
578     sptr<DisplayInfo> displayInfo = new DisplayInfo();
579     displayInfo->SetDisplayId(1000);
580     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldStatus();
581     ASSERT_EQ(ret, FoldStatus::UNKNOWN);
582     displayInfo.clear();
583 }
584 
585 /**
586  * @tc.name: GetFoldDisplayMode
587  * @tc.desc: GetFoldDisplayMode
588  * @tc.type: FUNC
589  */
HWTEST_F(DisplayManagerTest, GetFoldDisplayMode, Function | SmallTest | Level1)590 HWTEST_F(DisplayManagerTest, GetFoldDisplayMode, Function | SmallTest | Level1)
591 {
592     sptr<DisplayInfo> displayInfo = nullptr;
593     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldDisplayMode();
594     ASSERT_EQ(ret, FoldDisplayMode::UNKNOWN);
595     displayInfo.clear();
596 }
597 
598 /**
599  * @tc.name: GetFoldDisplayMode01
600  * @tc.desc: GetFoldDisplayMode01
601  * @tc.type: FUNC
602  */
HWTEST_F(DisplayManagerTest, GetFoldDisplayMode01, Function | SmallTest | Level1)603 HWTEST_F(DisplayManagerTest, GetFoldDisplayMode01, Function | SmallTest | Level1)
604 {
605     sptr<DisplayInfo> displayInfo = new DisplayInfo();
606     displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
607     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldDisplayMode();
608     ASSERT_EQ(ret, FoldDisplayMode::UNKNOWN);
609     displayInfo.clear();
610 }
611 
612 /**
613  * @tc.name: GetFoldDisplayMode02
614  * @tc.desc: GetFoldDisplayMode02
615  * @tc.type: FUNC
616  */
HWTEST_F(DisplayManagerTest, GetFoldDisplayMode02, Function | SmallTest | Level1)617 HWTEST_F(DisplayManagerTest, GetFoldDisplayMode02, Function | SmallTest | Level1)
618 {
619     sptr<DisplayInfo> displayInfo = new DisplayInfo();
620     displayInfo->SetDisplayId(10);
621     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldDisplayMode();
622     ASSERT_EQ(ret, FoldDisplayMode::UNKNOWN);
623     displayInfo.clear();
624 }
625 
626 /**
627  * @tc.name: GetFoldDisplayMode03
628  * @tc.desc: GetFoldDisplayMode03
629  * @tc.type: FUNC
630  */
HWTEST_F(DisplayManagerTest, GetFoldDisplayMode03, Function | SmallTest | Level1)631 HWTEST_F(DisplayManagerTest, GetFoldDisplayMode03, Function | SmallTest | Level1)
632 {
633     sptr<DisplayInfo> displayInfo = new DisplayInfo();
634     displayInfo->SetDisplayId(1000);
635     auto ret = DisplayManagerLite::GetInstance().pImpl_->GetFoldDisplayMode();
636     ASSERT_EQ(ret, FoldDisplayMode::UNKNOWN);
637     displayInfo.clear();
638 }
639 
640 /**
641  * @tc.name: GetScreenBrightness
642  * @tc.desc: GetScreenBrightness
643  * @tc.type: FUNC
644  */
HWTEST_F(DisplayManagerTest, GetScreenBrightness, Function | SmallTest | Level1)645 HWTEST_F(DisplayManagerTest, GetScreenBrightness, Function | SmallTest | Level1)
646 {
647     uint64_t screenId = 2;
648     auto ret = DisplayManagerLite::GetInstance().GetScreenBrightness(screenId);
649     ASSERT_FALSE(ret == 1);
650 }
651 
652 }
653 } // namespace Rosen
654 } // namespace OHOS