• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 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 "event_bus_test.h"
17 
18 using namespace testing::ext;
19 
20 namespace OHOS {
21 namespace DistributedHardware {
22 namespace {
23     FakeObject *g_obj = nullptr;
24     FakeSender *g_sender = nullptr;
25     FakeListener *g_listener = nullptr;
26     std::shared_ptr<OHOS::DistributedHardware::EventRegistration> g_regHandler = nullptr;
27     EventBus* g_eventBus = nullptr;
28 }
29 
SetUpTestCase(void)30 void EventbusTest::SetUpTestCase(void)
31 {
32 }
33 
TearDownTestCase(void)34 void EventbusTest::TearDownTestCase(void)
35 {
36 }
37 
SetUp()38 void EventbusTest::SetUp()
39 {
40     g_obj = new FakeObject("Player");
41     g_listener = new FakeListener();
42     g_sender = new FakeSender();
43     g_regHandler = nullptr;
44     g_eventBus = new EventBus();
45 }
46 
TearDown()47 void EventbusTest::TearDown()
48 {
49     if (g_obj != nullptr) {
50         delete g_obj;
51         g_obj = nullptr;
52     }
53     if (g_listener != nullptr) {
54         delete g_listener;
55         g_listener = nullptr;
56     }
57     if (g_sender != nullptr) {
58         delete g_sender;
59         g_sender = nullptr;
60     }
61     g_regHandler = nullptr;
62 
63     if (g_eventBus != nullptr) {
64         delete g_eventBus;
65         g_eventBus = nullptr;
66     }
67 }
68 
69 /**
70  * @tc.name: event_bus_test_001
71  * @tc.desc: Verify the EventBus AddHandler function.
72  * @tc.type: FUNC
73  * @tc.require: AR000GHSK9
74  */
75 HWTEST_F(EventbusTest, event_bus_test_001, TestSize.Level0)
76 {
77     EXPECT_EQ(g_regHandler, nullptr);
78 
79     FakeEvent e(*g_sender, *g_obj);
80     g_regHandler = g_eventBus->AddHandler<FakeEvent>(e.GetType(), *g_listener);
81 
82     EXPECT_NE(g_regHandler, nullptr);
83     EXPECT_EQ(g_regHandler->GetSender(), nullptr);
84     EXPECT_EQ(g_regHandler->GetHandler(), (void *)g_listener);
85 }
86 
87 /**
88  * @tc.name: event_bus_test_002
89  * @tc.desc: Verify the EventBus AddHandler function.
90  * @tc.type: FUNC
91  * @tc.require: AR000GHSK9
92  */
93 HWTEST_F(EventbusTest, event_bus_test_002, TestSize.Level0)
94 {
95     EXPECT_EQ(g_regHandler, nullptr);
96 
97     FakeEvent e(*g_sender, *g_obj);
98     g_regHandler = g_eventBus->AddHandler<FakeEvent>(e.GetType(), *g_listener);
99     std::shared_ptr<EventRegistration> secondHandler = g_eventBus->AddHandler<FakeEvent>(e.GetType(), *g_listener);
100 
101     EXPECT_NE(secondHandler, nullptr);
102     EXPECT_EQ(g_regHandler, secondHandler);
103 }
104 
105 /**
106  * @tc.name: event_bus_test_003
107  * @tc.desc: Verify the EventBus AddHandler with sender function.
108  * @tc.type: FUNC
109  * @tc.require: AR000GHSK9
110  */
111 HWTEST_F(EventbusTest, event_bus_test_003, TestSize.Level0)
112 {
113     EXPECT_EQ(g_regHandler, nullptr);
114 
115     FakeEvent e(*g_sender, *g_obj);
116     g_regHandler = g_eventBus->AddHandler<FakeEvent>(e.GetType(), *g_listener);
117     std::shared_ptr<EventRegistration> secondHandler =
118         g_eventBus->AddHandler<FakeEvent>(e.GetType(), *g_listener, *g_sender);
119 
120     EXPECT_NE(g_regHandler, nullptr);
121     EXPECT_NE(secondHandler, nullptr);
122     EXPECT_NE(g_regHandler, secondHandler);
123     EXPECT_EQ(secondHandler->GetSender(), g_sender);
124     EXPECT_EQ(secondHandler->GetHandler(), (void *)g_listener);
125 }
126 
127 /**
128  * @tc.name: event_bus_test_004
129  * @tc.desc: Verify the EventBus AddHandler and RemoveHandler function.
130  * @tc.type: FUNC
131  * @tc.require: AR000GHSK9
132  */
133 HWTEST_F(EventbusTest, event_bus_test_004, TestSize.Level0)
134 {
135     EXPECT_EQ(g_regHandler, nullptr);
136     FakeEvent e(*g_sender, *g_obj);
137     EXPECT_EQ(false, g_eventBus->RemoveHandler<FakeEvent>(e.GetType(), g_regHandler));
138 
139     g_regHandler = g_eventBus->AddHandler<FakeEvent>(e.GetType(), *g_listener);
140     EXPECT_EQ(true, g_eventBus->RemoveHandler<FakeEvent>(e.GetType(), g_regHandler));
141 }
142 
143 /**
144  * @tc.name: event_bus_test_005
145  * @tc.desc: Verify the EventBus PostEvent function.
146  * @tc.type: FUNC
147  * @tc.require: AR000GHSK9
148  */
149 HWTEST_F(EventbusTest, event_bus_test_005, TestSize.Level0)
150 {
151     EXPECT_EQ(0, g_obj->GetAge());
152 
153     FakeEvent e(*g_sender, *g_obj, 10);
154     g_regHandler = g_eventBus->AddHandler<FakeEvent>(e.GetType(), *g_listener);
155     g_eventBus->PostEvent<FakeEvent>(e, POSTMODE::POST_SYNC);
156     EXPECT_EQ(10, g_obj->GetAge());
157 }
158 }
159 }