• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include <securec.h>
18 
19 #include "lnn_connId_callback_manager.h"
20 #include "softbus_common.h"
21 #include "softbus_error_code.h"
22 
23 constexpr int32_t CHANNEL_ID = 2050;
24 constexpr int32_t CONNID_ID = 99;
25 constexpr int32_t CONNID_ID_TWO = 100;
26 constexpr int32_t CONNID_ID_ERROR = 0;
27 char g_peerUdud[] = "123456ABCDEF";
28 
29 namespace OHOS {
30 using namespace testing::ext;
31 
32 class LnnConnIdCbManagerTest : public testing::Test {
33 public:
34     static void SetUpTestCase(void);
35     static void TearDownTestCase(void);
36     void SetUp();
37     void TearDown();
38 };
39 
SetUpTestCase(void)40 void LnnConnIdCbManagerTest::SetUpTestCase(void) { }
41 
TearDownTestCase(void)42 void LnnConnIdCbManagerTest::TearDownTestCase(void) { }
43 
SetUp()44 void LnnConnIdCbManagerTest::SetUp()
45 {
46     LnnInitConnIdCallbackManager();
47 }
48 
TearDown()49 void LnnConnIdCbManagerTest::TearDown()
50 {
51     LnnDeinitConnIdCallbackManager();
52 }
53 
OnLnnServerJoinExtCb(const ConnectionAddr * addr,int32_t ret)54 static void OnLnnServerJoinExtCb(const ConnectionAddr *addr, int32_t ret)
55 {
56     (void)addr;
57     return;
58 }
59 
60 static LnnServerJoinExtCallBack cb = { .lnnServerJoinExtCallback = OnLnnServerJoinExtCb };
61 
62 /**
63  * @tc.name: LnnConnIdCbManagerTest001
64  * @tc.desc: AddConnIdCallbackInfoItem test.
65  * @tc.type: FUNC
66  * @tc.require:
67  */
68 HWTEST_F(LnnConnIdCbManagerTest, LnnConnIdCbManagerTest001, TestSize.Level1)
69 {
70     ConnectionAddr addr = { .type = CONNECTION_ADDR_SESSION, .info.session.channelId = CHANNEL_ID };
71     int32_t ret = AddConnIdCallbackInfoItem(&addr, &cb, CONNID_ID, g_peerUdud);
72     EXPECT_EQ(ret, SOFTBUS_OK);
73     ret = AddConnIdCallbackInfoItem(&addr, &cb, CONNID_ID_TWO, g_peerUdud);
74     EXPECT_EQ(ret, SOFTBUS_ALREADY_EXISTED);
75     ret = AddConnIdCallbackInfoItem(&addr, &cb, CONNID_ID_TWO, g_peerUdud);
76     EXPECT_EQ(ret, SOFTBUS_NETWORK_JOIN_LNN_START_ERR);
77     ret = AddConnIdCallbackInfoItem(nullptr, &cb, CONNID_ID_TWO, g_peerUdud);
78     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
79     ret = AddConnIdCallbackInfoItem(&addr, &cb, CONNID_ID_TWO, nullptr);
80     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
81     ret = AddConnIdCallbackInfoItem(&addr, nullptr, CONNID_ID_TWO, g_peerUdud);
82     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
83     ret = AddConnIdCallbackInfoItem(&addr, &cb, CONNID_ID_ERROR, g_peerUdud);
84     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
85 }
86 
87 /**
88  * @tc.name: LnnConnIdCbManagerTest002
89  * @tc.desc: DelConnIdCallbackInfoItem test.
90  * @tc.type: FUNC
91  * @tc.require:
92  */
93 HWTEST_F(LnnConnIdCbManagerTest, LnnConnIdCbManagerTest002, TestSize.Level1)
94 {
95     int32_t ret = DelConnIdCallbackInfoItem(CONNID_ID);
96     EXPECT_EQ(ret, SOFTBUS_OK);
97     ret = DelConnIdCallbackInfoItem(CONNID_ID_ERROR);
98     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
99 }
100 
101 /**
102  * @tc.name: LnnConnIdCbManagerTest003
103  * @tc.desc: InvokeCallbackForJoinExt test.
104  * @tc.type: FUNC
105  * @tc.require:
106  */
107 HWTEST_F(LnnConnIdCbManagerTest, LnnConnIdCbManagerTest003, TestSize.Level1)
108 {
109     ConnectionAddr addr = { .type = CONNECTION_ADDR_SESSION, .info.session.channelId = CHANNEL_ID };
110     int32_t ret = AddConnIdCallbackInfoItem(&addr, &cb, CONNID_ID, g_peerUdud);
111     EXPECT_EQ(ret, SOFTBUS_OK);
112     EXPECT_NO_FATAL_FAILURE(InvokeCallbackForJoinExt(g_peerUdud, SOFTBUS_OK));
113     EXPECT_NO_FATAL_FAILURE(InvokeCallbackForJoinExt(nullptr, SOFTBUS_OK));
114 }
115 
116 /**
117  * @tc.name: LnnConnIdCbManagerTest004
118  * @tc.desc: GetConnIdCbInfoByAddr test.
119  * @tc.type: FUNC
120  * @tc.require:
121  */
122 HWTEST_F(LnnConnIdCbManagerTest, LnnConnIdCbManagerTest004, TestSize.Level1)
123 {
124     ConnectionAddr addr = { .type = CONNECTION_ADDR_SESSION, .info.session.channelId = CHANNEL_ID };
125     ConnIdCbInfo connIdCbInfo;
126     (void)memset_s(&connIdCbInfo, sizeof(ConnIdCbInfo), 0, sizeof(ConnIdCbInfo));
127     int32_t ret = GetConnIdCbInfoByAddr(nullptr, &connIdCbInfo);
128     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
129     ret = GetConnIdCbInfoByAddr(&addr, &connIdCbInfo);
130     EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
131     ret = AddConnIdCallbackInfoItem(&addr, &cb, CONNID_ID, g_peerUdud);
132     EXPECT_EQ(ret, SOFTBUS_OK);
133     ret = GetConnIdCbInfoByAddr(&addr, &connIdCbInfo);
134     EXPECT_EQ(ret, SOFTBUS_OK);
135 }
136 } // namespace OHOS