1 /*
2 * Copyright (c) 2022-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 <cstdio>
17 #include <gtest/gtest.h>
18
19 #include "accesstoken_kit.h"
20
21 #include "devicestatus_common.h"
22 #include "devicestatus_msdp_client_impl.h"
23 #include "devicestatus_msdp_mock.h"
24 #include "fi_log.h"
25 #include "sensor_data_callback.h"
26
27 #undef LOG_TAG
28 #define LOG_TAG "DeviceStatusDatahubTest"
29
30 namespace OHOS {
31 namespace Msdp {
32 namespace DeviceStatus {
33 using namespace testing::ext;
34
35 class DeviceStatusDatahubTest : public testing::Test {
36 public:
37 static void SetUpTestCase();
38 static void TearDownTestCase();
39 void SetUp();
40 void TearDown();
41 };
42
SetUpTestCase()43 void DeviceStatusDatahubTest::SetUpTestCase()
44 {
45 SENSOR_DATA_CB.Init();
46 }
47
TearDownTestCase()48 void DeviceStatusDatahubTest::TearDownTestCase() {}
49
SetUp()50 void DeviceStatusDatahubTest::SetUp() {}
51
TearDown()52 void DeviceStatusDatahubTest::TearDown() {}
53
SensorAccelCallbackData(int32_t sensorTypeId,AccelData * data)54 void SensorAccelCallbackData(int32_t sensorTypeId, AccelData* data)
55 {
56 GTEST_LOG_(INFO) << sensorTypeId;
57 }
58
59 /**
60 * @tc.name: DeviceStatusDataCallbackTest
61 * @tc.desc: test devicestatus Callback in Algorithm
62 * @tc.type: FUNC
63 */
64 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest001, TestSize.Level1)
65 {
66 CALL_TEST_DEBUG;
67 using SensorCallback = std::function<void(int32_t, AccelData*)>;
68 SensorCallback callback = SensorAccelCallbackData;
69 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
70 bool ret = SENSOR_DATA_CB.SubscribeSensorEvent(sensorTypeId, callback);
71 ASSERT_TRUE(ret);
72 ret = SENSOR_DATA_CB.UnsubscribeSensorEvent(sensorTypeId, callback);
73 ASSERT_TRUE(ret);
74 }
75
76 /**
77 * @tc.name: DeviceStatusDataCallbackTest
78 * @tc.desc: test devicestatus Callback in Algorithm
79 * @tc.type: FUNC
80 */
81 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest002, TestSize.Level1)
82 {
83 CALL_TEST_DEBUG;
84 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
85 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
86 ASSERT_TRUE(ret);
87 AccelData data;
88 data.x = 10;
89 data.y = 12;
90 data.z = 163;
91 ret = SENSOR_DATA_CB.PushData(sensorTypeId, reinterpret_cast<uint8_t*>(&data));
92 EXPECT_FALSE(ret);
93 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
94 ASSERT_TRUE(ret);
95 }
96
97 /**
98 * @tc.name: DeviceStatusDataCallbackTest
99 * @tc.desc: test devicestatus Callback in Algorithm
100 * @tc.type: FUNC
101 */
102 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest003, TestSize.Level1)
103 {
104 CALL_TEST_DEBUG;
105 using SensorCallback = std::function<void(int32_t, AccelData*)>;
106 SensorCallback callback = SensorAccelCallbackData;
107 int32_t SENSOR_TYPE_ID_ERROR = 300;
108 bool ret = SENSOR_DATA_CB.SubscribeSensorEvent(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR), callback);
109 ASSERT_TRUE(ret);
110 ret = SENSOR_DATA_CB.UnsubscribeSensorEvent(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR), callback);
111 ASSERT_TRUE(ret);
112 }
113
114 /**
115 * @tc.name: DeviceStatusDataCallbackTest
116 * @tc.desc: test devicestatus Callback in Algorithm
117 * @tc.type: FUNC
118 */
119 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest004, TestSize.Level1)
120 {
121 CALL_TEST_DEBUG;
122 using SensorCallback = std::function<void(int32_t, AccelData*)>;
123 SensorCallback callback = SensorAccelCallbackData;
124 int32_t SENSOR_TYPE_ID_ERROR = -1;
125 bool ret = SENSOR_DATA_CB.SubscribeSensorEvent(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR), callback);
126 ASSERT_TRUE(ret);
127 ret = SENSOR_DATA_CB.UnsubscribeSensorEvent(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR), callback);
128 ASSERT_TRUE(ret);
129 }
130
131 /**
132 * @tc.name: DeviceStatusDataCallbackTest
133 * @tc.desc: test devicestatus Callback in Algorithm
134 * @tc.type: FUNC
135 */
136 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest005, TestSize.Level1)
137 {
138 CALL_TEST_DEBUG;
139 using SensorCallback = std::function<void(int32_t, AccelData*)>;
140 SensorCallback callback;
141 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
142 bool ret = SENSOR_DATA_CB.SubscribeSensorEvent(sensorTypeId, callback);
143 ASSERT_TRUE(ret);
144 ret = SENSOR_DATA_CB.UnsubscribeSensorEvent(sensorTypeId, callback);
145 ASSERT_TRUE(ret);
146 }
147
148 /**
149 * @tc.name: DeviceStatusDataCallbackTest
150 * @tc.desc: test devicestatus Callback in Algorithm
151 * @tc.type: FUNC
152 */
153 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest006, TestSize.Level1)
154 {
155 CALL_TEST_DEBUG;
156 using SensorCallback = std::function<void(int32_t, AccelData*)>;
157 SensorCallback callback = nullptr;
158 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
159 bool ret = SENSOR_DATA_CB.SubscribeSensorEvent(sensorTypeId, callback);
160 ASSERT_TRUE(ret);
161 ret = SENSOR_DATA_CB.UnsubscribeSensorEvent(sensorTypeId, callback);
162 ASSERT_TRUE(ret);
163 }
164
165 /**
166 * @tc.name: DeviceStatusDataCallbackTest
167 * @tc.desc: test devicestatus Callback in Algorithm
168 * @tc.type: FUNC
169 */
170 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest007, TestSize.Level1)
171 {
172 CALL_TEST_DEBUG;
173 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
174 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
175 ASSERT_TRUE(ret);
176 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
177 ASSERT_TRUE(ret);
178 }
179
180 /**
181 * @tc.name: DeviceStatusDataCallbackTest
182 * @tc.desc: test devicestatus Callback in Algorithm
183 * @tc.type: FUNC
184 */
185 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest008, TestSize.Level1)
186 {
187 CALL_TEST_DEBUG;
188 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
189 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
190 ASSERT_TRUE(ret);
191 int32_t sensorTypeIdt = SENSOR_TYPE_ID_TEMPERATURE;
192 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeIdt);
193 EXPECT_FALSE(ret);
194 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
195 ASSERT_TRUE(ret);
196 }
197
198 /**
199 * @tc.name: DeviceStatusDataCallbackTest
200 * @tc.desc: test devicestatus Callback in Algorithm
201 * @tc.type: FUNC
202 */
203 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest009, TestSize.Level1)
204 {
205 CALL_TEST_DEBUG;
206 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
207 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
208 ASSERT_TRUE(ret);
209 int32_t SENSOR_TYPE_ID_ERROR = 300;
210 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR));
211 EXPECT_FALSE(ret);
212 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
213 ASSERT_TRUE(ret);
214 }
215
216 /**
217 * @tc.name: DeviceStatusDataCallbackTest
218 * @tc.desc: test devicestatus Callback in Algorithm
219 * @tc.type: FUNC
220 */
221 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest010, TestSize.Level1)
222 {
223 CALL_TEST_DEBUG;
224 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
225 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
226 ASSERT_TRUE(ret);
227 int32_t SENSOR_TYPE_ID_ERROR = -1;
228 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR));
229 EXPECT_FALSE(ret);
230 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
231 ASSERT_TRUE(ret);
232 }
233
234 /**
235 * @tc.name: DeviceStatusDataCallbackTest
236 * @tc.desc: test devicestatus Callback in Algorithm
237 * @tc.type: FUNC
238 */
239 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest011, TestSize.Level1)
240 {
241 CALL_TEST_DEBUG;
242 int32_t sensorTypeId = SENSOR_TYPE_ID_TEMPERATURE;
243 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
244 EXPECT_FALSE(ret);
245 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
246 EXPECT_FALSE(ret);
247 }
248
249 /**
250 * @tc.name: DeviceStatusDataCallbackTest
251 * @tc.desc: test devicestatus Callback in Algorithm
252 * @tc.type: FUNC
253 */
254 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest012, TestSize.Level1)
255 {
256 CALL_TEST_DEBUG;
257 int32_t SENSOR_TYPE_ID_ERROR = 300;
258 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR));
259 EXPECT_FALSE(ret);
260 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR));
261 EXPECT_FALSE(ret);
262 }
263
264 /**
265 * @tc.name: DeviceStatusDataCallbackTest
266 * @tc.desc: test devicestatus Callback in Algorithm
267 * @tc.type: FUNC
268 */
269 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest013, TestSize.Level1)
270 {
271 CALL_TEST_DEBUG;
272 int32_t SENSOR_TYPE_ID_ERROR = -1;
273 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR));
274 EXPECT_FALSE(ret);
275 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(static_cast<SensorTypeId>(SENSOR_TYPE_ID_ERROR));
276 EXPECT_FALSE(ret);
277 }
278
279 /**
280 * @tc.name: DeviceStatusDataCallbackTest
281 * @tc.desc: test devicestatus Callback in Algorithm
282 * @tc.type: FUNC
283 */
284 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest014, TestSize.Level1)
285 {
286 CALL_TEST_DEBUG;
287 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
288 bool ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
289 EXPECT_FALSE(ret);
290 }
291
292 /**
293 * @tc.name: DeviceStatusDataCallbackTest
294 * @tc.desc: test devicestatus Callback in Algorithm
295 * @tc.type: FUNC
296 */
297 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest015, TestSize.Level1)
298 {
299 CALL_TEST_DEBUG;
300 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
301 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
302 ASSERT_TRUE(ret);
303 AccelData data;
304 data.x = 10;
305 data.y = 12;
306 data.z = 15;
307 ret = SENSOR_DATA_CB.PushData(sensorTypeId, reinterpret_cast<uint8_t*>(&data));
308 ASSERT_TRUE(ret);
309 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
310 ASSERT_TRUE(ret);
311 }
312
313 /**
314 * @tc.name: DeviceStatusDataCallbackTest
315 * @tc.desc: test devicestatus Callback in Algorithm
316 * @tc.type: FUNC
317 */
318 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest016, TestSize.Level1)
319 {
320 CALL_TEST_DEBUG;
321 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
322 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
323 ASSERT_TRUE(ret);
324 AccelData data;
325 data.x = -10;
326 data.y = -12;
327 data.z = -15;
328 ret = SENSOR_DATA_CB.PushData(sensorTypeId, reinterpret_cast<uint8_t*>(&data));
329 ASSERT_TRUE(ret);
330 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
331 ASSERT_TRUE(ret);
332 }
333
334 /**
335 * @tc.name: DeviceStatusDataCallbackTest
336 * @tc.desc: test devicestatus Callback in Algorithm
337 * @tc.type: FUNC
338 */
339 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest017, TestSize.Level1)
340 {
341 CALL_TEST_DEBUG;
342 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
343 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
344 ASSERT_TRUE(ret);
345 AccelData data;
346 data.x = 163;
347 data.y = 12;
348 data.z = 15;
349 ret = SENSOR_DATA_CB.PushData(sensorTypeId, reinterpret_cast<uint8_t*>(&data));
350 EXPECT_FALSE(ret);
351 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
352 ASSERT_TRUE(ret);
353 }
354
355 /**
356 * @tc.name: DeviceStatusDataCallbackTest
357 * @tc.desc: test devicestatus Callback in Algorithm
358 * @tc.type: FUNC
359 */
360 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest018, TestSize.Level1)
361 {
362 CALL_TEST_DEBUG;
363 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
364 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
365 ASSERT_TRUE(ret);
366 AccelData data;
367 data.x = -163;
368 data.y = -12;
369 data.z = -15;
370 ret = SENSOR_DATA_CB.PushData(sensorTypeId, reinterpret_cast<uint8_t*>(&data));
371 EXPECT_FALSE(ret);
372 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
373 ASSERT_TRUE(ret);
374 }
375
376 /**
377 * @tc.name: DeviceStatusDataCallbackTest
378 * @tc.desc: test devicestatus Callback in Algorithm
379 * @tc.type: FUNC
380 */
381 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest019, TestSize.Level1)
382 {
383 CALL_TEST_DEBUG;
384 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
385 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
386 ASSERT_TRUE(ret);
387 AccelData data;
388 data.x = 10;
389 data.y = 163;
390 data.z = 15;
391 ret = SENSOR_DATA_CB.PushData(sensorTypeId, reinterpret_cast<uint8_t*>(&data));
392 EXPECT_FALSE(ret);
393 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
394 ASSERT_TRUE(ret);
395 }
396
397 /**
398 * @tc.name: DeviceStatusDataCallbackTest
399 * @tc.desc: test devicestatus Callback in Algorithm
400 * @tc.type: FUNC
401 */
402 HWTEST_F(DeviceStatusDatahubTest, DeviceStatusDatahubTest020, TestSize.Level1)
403 {
404 CALL_TEST_DEBUG;
405 int32_t sensorTypeId = SENSOR_TYPE_ID_ACCELEROMETER;
406 bool ret = SENSOR_DATA_CB.RegisterCallbackSensor(sensorTypeId);
407 ASSERT_TRUE(ret);
408 AccelData data;
409 data.x = -10;
410 data.y = -163;
411 data.z = -15;
412 ret = SENSOR_DATA_CB.PushData(sensorTypeId, reinterpret_cast<uint8_t*>(&data));
413 EXPECT_FALSE(ret);
414 ret = SENSOR_DATA_CB.UnregisterCallbackSensor(sensorTypeId);
415 ASSERT_TRUE(ret);
416 }
417 } // namespace DeviceStatus
418 } // namespace Msdp
419 } // namespace OHOS
420