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 "gtest/gtest.h"
17
18 #define private public
19
20 #include "ans_inner_errors.h"
21 #include "distributed_data_define.h"
22 #include "distributed_device_status.h"
23 #include "mock_device_manager_impl.h"
24
25 namespace OHOS {
26 namespace Notification {
27
28 using namespace testing::ext;
29
30 class DistributedDeviceStatusTest : public testing::Test {
31 public:
32 static void SetUpTestCase();
33 static void TearDownTestCase();
SetUp()34 void SetUp() {};
TearDown()35 void TearDown() {};
36 };
37
SetUpTestCase()38 void DistributedDeviceStatusTest::SetUpTestCase()
39 {
40 GTEST_LOG_(INFO) << "SetUp Case start";
41 GTEST_LOG_(INFO) << "SetUp end";
42 }
43
TearDownTestCase()44 void DistributedDeviceStatusTest::TearDownTestCase()
45 {
46 GTEST_LOG_(INFO) << "TearDown case";
47 }
48
49 /**
50 * @tc.name: Device status check
51 * @tc.desc: Check device status config, change device status, and updat device status by networkid.
52 * @tc.type: FUNC
53 * @tc.require: issue
54 */
55 HWTEST_F(DistributedDeviceStatusTest, DeviceData_00001, Function | SmallTest | Level1)
56 {
57 // set device status online
58 int32_t result = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->SetDeviceStatus(
59 "pad", 1, 33, "udidNum", 100);
60 ASSERT_EQ(result, 0);
61 DeviceStatus deviceStatus = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->GetMultiDeviceStatus(
62 "pad", 1);
63 ASSERT_EQ(deviceStatus.deviceType.empty(), false);
64 result = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->SetDeviceStatus(
65 "pc", 1, 33, "udidNum", 100);
66 ASSERT_EQ(result, 0);
67 result = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->SetDeviceStatus(
68 "pad", 0, 33, "udidNum1", 100);
69 ASSERT_EQ(result, 0);
70
71 // set device status offline
72 result = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->SetDeviceStatus(
73 "pad", 0, 33, "udidNum", 100);
74 ASSERT_EQ(result, 0);
75 deviceStatus = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->GetMultiDeviceStatus(
76 "pad", 1);
77 ASSERT_EQ(deviceStatus.deviceType.empty(), true);
78
79 result = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->SetDeviceStatus(
80 "pad", 1, 33, "udidNum", 100);
81 ASSERT_EQ(result, 0);
82
83 DeviceTrigger::MockTransDeviceIdToUdid(true);
84 result = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->SetDeviceStatus(
85 "pad", 0, 65537, "netWorkId", 100);
86 ASSERT_EQ(result, (int32_t)ERR_OK);
87 DeviceTrigger::MockTransDeviceIdToUdid(false);
88
89 result = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->SetDeviceStatus(
90 "pad", 0, 65537, "netWorkId", 100);
91 ASSERT_EQ(result, 0);
92 deviceStatus = DelayedSingleton<DistributedDeviceStatus>::GetInstance()->GetMultiDeviceStatus(
93 "pad", 1);
94 ASSERT_EQ(deviceStatus.deviceType.empty(), false);
95 }
96 }
97 }
98