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 <gtest/gtest.h>
17 #include <securec.h>
18
19 #include "bus_center_info_key.h"
20 #include "bus_center_manager.h"
21 #include "lnn_local_net_ledger.h"
22 #include "softbus_access_token_test.h"
23 #include "softbus_bus_center.h"
24 #include "softbus_client_frame_manager.h"
25 #include "softbus_client_stub_interface.h"
26 #include "softbus_common.h"
27 #include "softbus_error_code.h"
28
29 constexpr char PKG_NAME[] = "com.softbus.test";
30 constexpr char NETWORK_ID[] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
31 constexpr uint16_t DATA_CHANGE_FLAG = 65535;
32 constexpr int32_t DATA_CHANGE_FLAG_BUF_NUM = 2;
33
34 namespace OHOS {
35 using namespace testing::ext;
36
37 class ClientBusCenterSdkTest : public testing::Test {
38 public:
39 static void SetUpTestCase();
40 static void TearDownTestCase();
41 void SetUp();
42 void TearDown();
43 void AddPermission();
44 };
45
SetUpTestCase()46 void ClientBusCenterSdkTest::SetUpTestCase()
47 {
48 SetAccessTokenPermission("busCenterTest");
49 uint64_t tokenId = SetTokenIdByProcessName("device_manager");
50 printf("SetTokenIdByProcessName tokenId:%ju\n", tokenId);
51 }
52
TearDownTestCase()53 void ClientBusCenterSdkTest::TearDownTestCase() { }
54
SetUp()55 void ClientBusCenterSdkTest::SetUp()
56 {
57 SetAccessTokenPermission("device_manager");
58 EXPECT_EQ(ClientStubInit(), SOFTBUS_OK);
59 EXPECT_EQ(InitSoftBus(PKG_NAME), SOFTBUS_OK);
60 }
61
TearDown()62 void ClientBusCenterSdkTest::TearDown() { }
63
64 /*
65 * @tc.name: SOFTBUS_CENTER_SDK_TEST_001
66 * @tc.desc: test set dataChangeFlag and get dataChangeFlag
67 * @tc.type: FUNC
68 * @tc.require: I5TQW0
69 */
70 HWTEST_F(ClientBusCenterSdkTest, SOFTBUS_CENTER_SDK_TEST_001, TestSize.Level0)
71 {
72 NodeBasicInfo info;
73 (void)memset_s(&info, sizeof(NodeBasicInfo), 0, sizeof(NodeBasicInfo));
74 EXPECT_TRUE(GetLocalNodeDeviceInfo(PKG_NAME, &info) == SOFTBUS_OK);
75 EXPECT_NE(SetNodeDataChangeFlag(PKG_NAME, info.networkId, DATA_CHANGE_FLAG), SOFTBUS_OK);
76 uint16_t dataChangeFlag = 0;
77 EXPECT_TRUE(GetNodeKeyInfo(PKG_NAME, info.networkId, NODE_KEY_DATA_CHANGE_FLAG, (uint8_t *)&dataChangeFlag,
78 DATA_CHANGE_FLAG_BUF_NUM) == SOFTBUS_OK);
79 EXPECT_NE(dataChangeFlag, DATA_CHANGE_FLAG);
80 }
81
82 /*
83 * @tc.name: SOFTBUS_CENTER_SDK_TEST_002
84 * @tc.desc: test SetNodeDataChangeFlag fail
85 * @tc.type: FUNC
86 * @tc.require: I5TQW0
87 */
88 HWTEST_F(ClientBusCenterSdkTest, SOFTBUS_CENTER_SDK_TEST_002, TestSize.Level0)
89 {
90 NodeBasicInfo info;
91 (void)memset_s(&info, sizeof(NodeBasicInfo), 0, sizeof(NodeBasicInfo));
92 EXPECT_TRUE(GetLocalNodeDeviceInfo(PKG_NAME, &info) == SOFTBUS_OK);
93 EXPECT_TRUE(SetNodeDataChangeFlag(nullptr, info.networkId, DATA_CHANGE_FLAG) == SOFTBUS_INVALID_PARAM);
94 EXPECT_TRUE(SetNodeDataChangeFlag(PKG_NAME, NETWORK_ID, DATA_CHANGE_FLAG) == SOFTBUS_INVALID_PARAM);
95 }
96
97 /*
98 * @tc.name: SOFTBUS_CENTER_SDK_TEST_003
99 * @tc.desc: after joinLNN test get remote dataChangeFlag
100 * @tc.type: FUNC
101 * @tc.require: I5TQW0
102 */
103 HWTEST_F(ClientBusCenterSdkTest, SOFTBUS_CENTER_SDK_TEST_003, TestSize.Level0)
104 {
105 NodeBasicInfo *info = nullptr;
106 int32_t infoNum = 0;
107 uint16_t dataChangeFlag = 1;
108 EXPECT_TRUE(GetAllNodeDeviceInfo(PKG_NAME, &info, &infoNum) == SOFTBUS_OK);
109 if (info != nullptr && infoNum != 0) {
110 EXPECT_TRUE(GetNodeKeyInfo(PKG_NAME, info->networkId, NODE_KEY_DATA_CHANGE_FLAG, (uint8_t *)&dataChangeFlag,
111 DATA_CHANGE_FLAG_BUF_NUM) == SOFTBUS_OK);
112 EXPECT_TRUE(dataChangeFlag == DATA_CHANGE_FLAG);
113 }
114 }
115 } // namespace OHOS
116