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