1060ff233Sopenharmony_ci/*
2060ff233Sopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3060ff233Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4060ff233Sopenharmony_ci * you may not use this file except in compliance with the License.
5060ff233Sopenharmony_ci * You may obtain a copy of the License at
6060ff233Sopenharmony_ci *
7060ff233Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8060ff233Sopenharmony_ci *
9060ff233Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10060ff233Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11060ff233Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12060ff233Sopenharmony_ci * See the License for the specific language governing permissions and
13060ff233Sopenharmony_ci * limitations under the License.
14060ff233Sopenharmony_ci */
15060ff233Sopenharmony_ci
16060ff233Sopenharmony_ci#include <cstdio>
17060ff233Sopenharmony_ci#include <ctime>
18060ff233Sopenharmony_ci#include <gtest/gtest.h>
19060ff233Sopenharmony_ci#include <sys/time.h>
20060ff233Sopenharmony_ci#include <unistd.h>
21060ff233Sopenharmony_ci
22060ff233Sopenharmony_ci#include "client_bus_center_manager.h"
23060ff233Sopenharmony_ci#include "disc_sdk_test_bt_status.h"
24060ff233Sopenharmony_ci#include "softbus_access_token_test.h"
25060ff233Sopenharmony_ci#include "softbus_bus_center.h"
26060ff233Sopenharmony_ci#include "softbus_error_code.h"
27060ff233Sopenharmony_ci
28060ff233Sopenharmony_ciusing namespace testing::ext;
29060ff233Sopenharmony_ci
30060ff233Sopenharmony_cinamespace OHOS {
31060ff233Sopenharmony_cistatic int32_t g_subscribeId = 0;
32060ff233Sopenharmony_cistatic int32_t g_publishId = 0;
33060ff233Sopenharmony_cistatic const char *g_pkgName = "Softbus_Kits";
34060ff233Sopenharmony_cistatic const char *g_pkgName_1 = "Softbus_Kits_1";
35060ff233Sopenharmony_cistatic const char *g_erroPkgName = "Softbus_Erro_Kits";
36060ff233Sopenharmony_cistatic const char *g_erroPkgName1 = "ErroErroErroErroErroErroErroErroErroErroErroErroErroErroErroErroEErroE";
37060ff233Sopenharmony_ci
38060ff233Sopenharmony_ciconst int32_t ERRO_CAPDATA_LEN = 514;
39060ff233Sopenharmony_ci
40060ff233Sopenharmony_ciclass DiscSdkTest : public testing::Test {
41060ff233Sopenharmony_cipublic:
42060ff233Sopenharmony_ci    DiscSdkTest()
43060ff233Sopenharmony_ci    {}
44060ff233Sopenharmony_ci    ~DiscSdkTest()
45060ff233Sopenharmony_ci    {}
46060ff233Sopenharmony_ci    static void SetUpTestCase(void);
47060ff233Sopenharmony_ci    static void TearDownTestCase(void);
48060ff233Sopenharmony_ci    void SetUp() override
49060ff233Sopenharmony_ci    {}
50060ff233Sopenharmony_ci    void TearDown() override
51060ff233Sopenharmony_ci    {}
52060ff233Sopenharmony_ci};
53060ff233Sopenharmony_ci
54060ff233Sopenharmony_civoid DiscSdkTest::SetUpTestCase(void)
55060ff233Sopenharmony_ci{
56060ff233Sopenharmony_ci    SetAceessTokenPermission("discTest");
57060ff233Sopenharmony_ci}
58060ff233Sopenharmony_ci
59060ff233Sopenharmony_civoid DiscSdkTest::TearDownTestCase(void)
60060ff233Sopenharmony_ci{}
61060ff233Sopenharmony_ci
62060ff233Sopenharmony_cistatic int32_t GetSubscribeId(void)
63060ff233Sopenharmony_ci{
64060ff233Sopenharmony_ci    g_subscribeId++;
65060ff233Sopenharmony_ci    return g_subscribeId;
66060ff233Sopenharmony_ci}
67060ff233Sopenharmony_ci
68060ff233Sopenharmony_cistatic int32_t GetPublishId(void)
69060ff233Sopenharmony_ci{
70060ff233Sopenharmony_ci    g_publishId++;
71060ff233Sopenharmony_ci    return g_publishId;
72060ff233Sopenharmony_ci}
73060ff233Sopenharmony_ci
74060ff233Sopenharmony_cistatic SubscribeInfo g_sInfo = {
75060ff233Sopenharmony_ci    .subscribeId = 1,
76060ff233Sopenharmony_ci    .mode = DISCOVER_MODE_PASSIVE,
77060ff233Sopenharmony_ci    .medium = COAP,
78060ff233Sopenharmony_ci    .freq = MID,
79060ff233Sopenharmony_ci    .isSameAccount = true,
80060ff233Sopenharmony_ci    .isWakeRemote = false,
81060ff233Sopenharmony_ci    .capability = "dvKit",
82060ff233Sopenharmony_ci    .capabilityData = (unsigned char *)"capdata3",
83060ff233Sopenharmony_ci    .dataLen = (unsigned int) strlen("capdata3")
84060ff233Sopenharmony_ci};
85060ff233Sopenharmony_ci
86060ff233Sopenharmony_cistatic PublishInfo g_pInfo = {
87060ff233Sopenharmony_ci    .publishId = 1,
88060ff233Sopenharmony_ci    .mode = DISCOVER_MODE_PASSIVE,
89060ff233Sopenharmony_ci    .medium = COAP,
90060ff233Sopenharmony_ci    .freq = MID,
91060ff233Sopenharmony_ci    .capability = "dvKit",
92060ff233Sopenharmony_ci    .capabilityData = (unsigned char *)"capdata4",
93060ff233Sopenharmony_ci    .dataLen = (unsigned int) strlen("capdata4")
94060ff233Sopenharmony_ci};
95060ff233Sopenharmony_ci
96060ff233Sopenharmony_cistatic PublishInfo g_pInfo1 = {
97060ff233Sopenharmony_ci    .publishId = 1,
98060ff233Sopenharmony_ci    .mode = DISCOVER_MODE_PASSIVE,
99060ff233Sopenharmony_ci    .medium = COAP,
100060ff233Sopenharmony_ci    .freq = MID,
101060ff233Sopenharmony_ci    .capability = "dvKit",
102060ff233Sopenharmony_ci    .capabilityData = nullptr,
103060ff233Sopenharmony_ci    .dataLen = 0
104060ff233Sopenharmony_ci};
105060ff233Sopenharmony_ci
106060ff233Sopenharmony_cistatic SubscribeInfo g_sInfo1 = {
107060ff233Sopenharmony_ci    .subscribeId = 1,
108060ff233Sopenharmony_ci    .mode = DISCOVER_MODE_PASSIVE,
109060ff233Sopenharmony_ci    .medium = COAP,
110060ff233Sopenharmony_ci    .freq = MID,
111060ff233Sopenharmony_ci    .isSameAccount = true,
112060ff233Sopenharmony_ci    .isWakeRemote = false,
113060ff233Sopenharmony_ci    .capability = "hicall",
114060ff233Sopenharmony_ci    .capabilityData = nullptr,
115060ff233Sopenharmony_ci    .dataLen = 0
116060ff233Sopenharmony_ci};
117060ff233Sopenharmony_ci
118060ff233Sopenharmony_cistatic PublishInfo g_publishInfo = {
119060ff233Sopenharmony_ci    .publishId = 1,
120060ff233Sopenharmony_ci    .mode = DISCOVER_MODE_PASSIVE,
121060ff233Sopenharmony_ci    .medium = COAP,
122060ff233Sopenharmony_ci    .freq = MID,
123060ff233Sopenharmony_ci    .capability = "dvKit",
124060ff233Sopenharmony_ci    .capabilityData = nullptr,
125060ff233Sopenharmony_ci    .dataLen = 0
126060ff233Sopenharmony_ci};
127060ff233Sopenharmony_ci
128060ff233Sopenharmony_cistatic SubscribeInfo g_subscribeInfo = {
129060ff233Sopenharmony_ci    .subscribeId = 1,
130060ff233Sopenharmony_ci    .mode = DISCOVER_MODE_PASSIVE,
131060ff233Sopenharmony_ci    .medium = COAP,
132060ff233Sopenharmony_ci    .freq = MID,
133060ff233Sopenharmony_ci    .isSameAccount = true,
134060ff233Sopenharmony_ci    .isWakeRemote = false,
135060ff233Sopenharmony_ci    .capability = "dvKit",
136060ff233Sopenharmony_ci    .capabilityData = nullptr,
137060ff233Sopenharmony_ci    .dataLen = 0
138060ff233Sopenharmony_ci};
139060ff233Sopenharmony_ci
140060ff233Sopenharmony_cistatic void TestDeviceFound(const DeviceInfo *device)
141060ff233Sopenharmony_ci{
142060ff233Sopenharmony_ci    (void)device;
143060ff233Sopenharmony_ci    printf("[client]TestDeviceFound\n");
144060ff233Sopenharmony_ci}
145060ff233Sopenharmony_ci
146060ff233Sopenharmony_cistatic void TestOnDiscoverResult(int32_t refreshId, RefreshResult reason)
147060ff233Sopenharmony_ci{
148060ff233Sopenharmony_ci    (void)refreshId;
149060ff233Sopenharmony_ci    (void)reason;
150060ff233Sopenharmony_ci    printf("[client]TestDiscoverResult\n");
151060ff233Sopenharmony_ci}
152060ff233Sopenharmony_ci
153060ff233Sopenharmony_cistatic const IRefreshCallback g_refreshCb = {
154060ff233Sopenharmony_ci    .OnDeviceFound = TestDeviceFound,
155060ff233Sopenharmony_ci    .OnDiscoverResult = TestOnDiscoverResult
156060ff233Sopenharmony_ci};
157060ff233Sopenharmony_ci
158060ff233Sopenharmony_cistatic void TestOnPublishResult(int32_t publishId, PublishResult reason)
159060ff233Sopenharmony_ci{
160060ff233Sopenharmony_ci    (void)publishId;
161060ff233Sopenharmony_ci    (void)reason;
162060ff233Sopenharmony_ci    printf("[client]TestPublishResult\n");
163060ff233Sopenharmony_ci}
164060ff233Sopenharmony_ci
165060ff233Sopenharmony_cistatic const IPublishCb g_publishCb = {
166060ff233Sopenharmony_ci    .OnPublishResult = TestOnPublishResult,
167060ff233Sopenharmony_ci};
168060ff233Sopenharmony_ci
169060ff233Sopenharmony_ci/**
170060ff233Sopenharmony_ci * @tc.name: PublishLNNTest001
171060ff233Sopenharmony_ci * @tc.desc: Test for invalid parameters
172060ff233Sopenharmony_ci * @tc.type: FUNC
173060ff233Sopenharmony_ci * @tc.require:
174060ff233Sopenharmony_ci */
175060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest001, TestSize.Level1)
176060ff233Sopenharmony_ci{
177060ff233Sopenharmony_ci    int32_t ret = PublishLNN(nullptr, &g_pInfo, &g_publishCb);
178060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
179060ff233Sopenharmony_ci
180060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, nullptr, &g_publishCb);
181060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
182060ff233Sopenharmony_ci
183060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_pInfo, nullptr);
184060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
185060ff233Sopenharmony_ci}
186060ff233Sopenharmony_ci
187060ff233Sopenharmony_ci/**
188060ff233Sopenharmony_ci * @tc.name: PublishLNNTest002
189060ff233Sopenharmony_ci * @tc.desc: Test for invalid packageName.
190060ff233Sopenharmony_ci * @tc.type: FUNC
191060ff233Sopenharmony_ci * @tc.require:The PublishLNN operates normally.
192060ff233Sopenharmony_ci */
193060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest002, TestSize.Level1)
194060ff233Sopenharmony_ci{
195060ff233Sopenharmony_ci    g_pInfo.publishId = GetPublishId();
196060ff233Sopenharmony_ci    int32_t ret = PublishLNN(g_erroPkgName1, &g_pInfo, &g_publishCb);
197060ff233Sopenharmony_ci    EXPECT_NE(ret, SOFTBUS_OK);
198060ff233Sopenharmony_ci}
199060ff233Sopenharmony_ci
200060ff233Sopenharmony_ci/**
201060ff233Sopenharmony_ci * @tc.name: PublishLNNTest003
202060ff233Sopenharmony_ci * @tc.desc: Test for invalid PublishInfo
203060ff233Sopenharmony_ci * @tc.type: FUNC
204060ff233Sopenharmony_ci * @tc.require:
205060ff233Sopenharmony_ci */
206060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest003, TestSize.Level1)
207060ff233Sopenharmony_ci{
208060ff233Sopenharmony_ci    PublishInfo testInfo = {
209060ff233Sopenharmony_ci        .publishId = GetPublishId(),
210060ff233Sopenharmony_ci        .mode = DISCOVER_MODE_ACTIVE,
211060ff233Sopenharmony_ci        .medium = COAP,
212060ff233Sopenharmony_ci        .freq = MID,
213060ff233Sopenharmony_ci        .capability = "dvKit",
214060ff233Sopenharmony_ci        .capabilityData = (unsigned char *)"capdata2",
215060ff233Sopenharmony_ci        .dataLen = (unsigned int) strlen("capdata2"),
216060ff233Sopenharmony_ci        .ranging = false
217060ff233Sopenharmony_ci    };
218060ff233Sopenharmony_ci
219060ff233Sopenharmony_ci    testInfo.mode = (DiscoverMode)(DISCOVER_MODE_ACTIVE + 1);
220060ff233Sopenharmony_ci    int32_t ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
221060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
222060ff233Sopenharmony_ci    testInfo.mode = (DiscoverMode)(DISCOVER_MODE_PASSIVE - 1);
223060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
224060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
225060ff233Sopenharmony_ci    testInfo.mode = DISCOVER_MODE_PASSIVE;
226060ff233Sopenharmony_ci
227060ff233Sopenharmony_ci    testInfo.medium = (ExchangeMedium)(COAP + 1);
228060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
229060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
230060ff233Sopenharmony_ci    testInfo.medium = (ExchangeMedium)(AUTO - 1);
231060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
232060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
233060ff233Sopenharmony_ci    testInfo.medium = COAP;
234060ff233Sopenharmony_ci
235060ff233Sopenharmony_ci    testInfo.freq = (ExchangeFreq)(FREQ_BUTT);
236060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
237060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
238060ff233Sopenharmony_ci    testInfo.freq = (ExchangeFreq)(LOW - 1);
239060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
240060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
241060ff233Sopenharmony_ci    testInfo.freq = LOW;
242060ff233Sopenharmony_ci
243060ff233Sopenharmony_ci    testInfo.capabilityData = nullptr;
244060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
245060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
246060ff233Sopenharmony_ci    testInfo.capabilityData = (unsigned char *)"capdata1";
247060ff233Sopenharmony_ci
248060ff233Sopenharmony_ci    testInfo.dataLen = ERRO_CAPDATA_LEN;
249060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
250060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
251060ff233Sopenharmony_ci}
252060ff233Sopenharmony_ci
253060ff233Sopenharmony_ci/**
254060ff233Sopenharmony_ci * @tc.name: PublishLNNTest004
255060ff233Sopenharmony_ci * @tc.desc: Test GetPublishId and PublishLNN to see if they are running properly.
256060ff233Sopenharmony_ci * @tc.type: FUNC
257060ff233Sopenharmony_ci * @tc.require:
258060ff233Sopenharmony_ci */
259060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest004, TestSize.Level1)
260060ff233Sopenharmony_ci{
261060ff233Sopenharmony_ci    g_pInfo.publishId = GetPublishId();
262060ff233Sopenharmony_ci    int32_t ret = PublishLNN(g_pkgName, &g_pInfo, &g_publishCb);
263060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
264060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_pInfo.publishId);
265060ff233Sopenharmony_ci
266060ff233Sopenharmony_ci    g_pInfo1.publishId = GetPublishId();
267060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_pInfo1, &g_publishCb);
268060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
269060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_pInfo1.publishId);
270060ff233Sopenharmony_ci
271060ff233Sopenharmony_ci    g_pInfo1.publishId = GetPublishId();
272060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName_1, &g_pInfo1, &g_publishCb);
273060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
274060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName_1, g_pInfo1.publishId);
275060ff233Sopenharmony_ci}
276060ff233Sopenharmony_ci
277060ff233Sopenharmony_ci/**
278060ff233Sopenharmony_ci * @tc.name: PublishLNNTest005
279060ff233Sopenharmony_ci * @tc.desc: Test different freq with passive CoAP publish.
280060ff233Sopenharmony_ci * @tc.type: FUNC
281060ff233Sopenharmony_ci * @tc.require: The PublishLNN and StopPublishLNN operates normally.
282060ff233Sopenharmony_ci */
283060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest005, TestSize.Level1)
284060ff233Sopenharmony_ci{
285060ff233Sopenharmony_ci    g_publishInfo.publishId = GetPublishId();
286060ff233Sopenharmony_ci    g_publishInfo.mode = DISCOVER_MODE_PASSIVE;
287060ff233Sopenharmony_ci    g_publishInfo.medium = COAP;
288060ff233Sopenharmony_ci
289060ff233Sopenharmony_ci    int32_t ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
290060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
291060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
292060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
293060ff233Sopenharmony_ci
294060ff233Sopenharmony_ci    g_publishInfo.freq = MID;
295060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
296060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
297060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
298060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
299060ff233Sopenharmony_ci
300060ff233Sopenharmony_ci    g_publishInfo.freq = HIGH;
301060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
302060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
303060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
304060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
305060ff233Sopenharmony_ci
306060ff233Sopenharmony_ci    g_publishInfo.freq = SUPER_HIGH;
307060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
308060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
309060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
310060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
311060ff233Sopenharmony_ci
312060ff233Sopenharmony_ci    g_publishInfo.freq = EXTREME_HIGH;
313060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
314060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
315060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
316060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
317060ff233Sopenharmony_ci}
318060ff233Sopenharmony_ci
319060ff233Sopenharmony_ci/**
320060ff233Sopenharmony_ci * @tc.name: PublishLNNTest006
321060ff233Sopenharmony_ci * @tc.desc: Test different freq with passive BLE publish.
322060ff233Sopenharmony_ci * @tc.type: FUNC
323060ff233Sopenharmony_ci * @tc.require: The PublishLNN and StopPublishLNN operates normally.
324060ff233Sopenharmony_ci */
325060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest006, TestSize.Level1)
326060ff233Sopenharmony_ci{
327060ff233Sopenharmony_ci    g_publishInfo.publishId = GetPublishId();
328060ff233Sopenharmony_ci    g_publishInfo.mode = DISCOVER_MODE_PASSIVE;
329060ff233Sopenharmony_ci    g_publishInfo.medium = BLE;
330060ff233Sopenharmony_ci
331060ff233Sopenharmony_ci    bool isBtOn = SoftbusTestGetBtStatus();
332060ff233Sopenharmony_ci    printf("bt status %s\n", isBtOn ? "on" : "off");
333060ff233Sopenharmony_ci
334060ff233Sopenharmony_ci    int32_t ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
335060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
336060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
337060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
338060ff233Sopenharmony_ci
339060ff233Sopenharmony_ci    g_publishInfo.freq = MID;
340060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
341060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
342060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
343060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
344060ff233Sopenharmony_ci
345060ff233Sopenharmony_ci    g_publishInfo.freq = HIGH;
346060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
347060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
348060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
349060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
350060ff233Sopenharmony_ci
351060ff233Sopenharmony_ci    g_publishInfo.freq = SUPER_HIGH;
352060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
353060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
354060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
355060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
356060ff233Sopenharmony_ci
357060ff233Sopenharmony_ci    g_publishInfo.freq = EXTREME_HIGH;
358060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
359060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
360060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
361060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
362060ff233Sopenharmony_ci}
363060ff233Sopenharmony_ci
364060ff233Sopenharmony_ci/**
365060ff233Sopenharmony_ci * @tc.name: PublishLNNTest007
366060ff233Sopenharmony_ci * @tc.desc: Test different capability with passive CoAP publish.
367060ff233Sopenharmony_ci * @tc.type: FUNC
368060ff233Sopenharmony_ci * @tc.require: The PublishLNN and StopPublishLNN operates normally.
369060ff233Sopenharmony_ci */
370060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest007, TestSize.Level1)
371060ff233Sopenharmony_ci{
372060ff233Sopenharmony_ci    g_publishInfo.publishId = GetPublishId();
373060ff233Sopenharmony_ci    g_publishInfo.mode = DISCOVER_MODE_PASSIVE;
374060ff233Sopenharmony_ci    g_publishInfo.medium = COAP;
375060ff233Sopenharmony_ci
376060ff233Sopenharmony_ci    int32_t ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
377060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
378060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
379060ff233Sopenharmony_ci
380060ff233Sopenharmony_ci    g_publishInfo.capability = "hicall";
381060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
382060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
383060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
384060ff233Sopenharmony_ci
385060ff233Sopenharmony_ci    g_publishInfo.capability = "profile";
386060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
387060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
388060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
389060ff233Sopenharmony_ci
390060ff233Sopenharmony_ci    g_publishInfo.capability = "homevisionPic";
391060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
392060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
393060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
394060ff233Sopenharmony_ci
395060ff233Sopenharmony_ci    g_publishInfo.capability = "castPlus";
396060ff233Sopenharmony_ci    g_publishInfo.capabilityData = (unsigned char *)"{\"castPlus\":\"capdata2\"}";
397060ff233Sopenharmony_ci    g_publishInfo.dataLen = (unsigned int) strlen("{\"castPlus\":\"capdata2\"}");
398060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
399060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
400060ff233Sopenharmony_ci    g_publishInfo.capabilityData = (unsigned char *)"capdata2";
401060ff233Sopenharmony_ci    g_publishInfo.dataLen = (unsigned int) strlen("capdata2");
402060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
403060ff233Sopenharmony_ci
404060ff233Sopenharmony_ci    g_publishInfo.capability = "aaCapability";
405060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
406060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
407060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
408060ff233Sopenharmony_ci
409060ff233Sopenharmony_ci    g_publishInfo.capability = "ddmpCapability";
410060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
411060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
412060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
413060ff233Sopenharmony_ci
414060ff233Sopenharmony_ci    g_publishInfo.capability = "osdCapability";
415060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
416060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
417060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
418060ff233Sopenharmony_ci}
419060ff233Sopenharmony_ci
420060ff233Sopenharmony_ci/**
421060ff233Sopenharmony_ci * @tc.name: PublishLNNTest008
422060ff233Sopenharmony_ci * @tc.desc: Test different capability with passive BLE publish: dvKit, castPlus, osdCapability
423060ff233Sopenharmony_ci * @tc.type: FUNC
424060ff233Sopenharmony_ci * @tc.require: The PublishLNN and StopPublishLNN operates normally.
425060ff233Sopenharmony_ci */
426060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, PublishLNNTest008, TestSize.Level1)
427060ff233Sopenharmony_ci{
428060ff233Sopenharmony_ci    g_publishInfo.publishId = GetPublishId();
429060ff233Sopenharmony_ci    g_publishInfo.mode = DISCOVER_MODE_PASSIVE;
430060ff233Sopenharmony_ci    g_publishInfo.medium = BLE;
431060ff233Sopenharmony_ci
432060ff233Sopenharmony_ci    bool isBtOn = SoftbusTestGetBtStatus();
433060ff233Sopenharmony_ci    printf("bt status %s\n", isBtOn ? "on" : "off");
434060ff233Sopenharmony_ci
435060ff233Sopenharmony_ci    g_publishInfo.capability = "dvKit";
436060ff233Sopenharmony_ci    int32_t ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
437060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
438060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
439060ff233Sopenharmony_ci
440060ff233Sopenharmony_ci    g_publishInfo.capability = "castPlus";
441060ff233Sopenharmony_ci    g_publishInfo.capabilityData = (unsigned char *)"{\"castPlus\":\"capdata2\"}";
442060ff233Sopenharmony_ci    g_publishInfo.dataLen = (unsigned int) strlen("{\"castPlus\":\"capdata2\"}");
443060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
444060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
445060ff233Sopenharmony_ci    g_publishInfo.capabilityData = (unsigned char *)"capdata2";
446060ff233Sopenharmony_ci    g_publishInfo.dataLen = (unsigned int) strlen("capdata2");
447060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
448060ff233Sopenharmony_ci
449060ff233Sopenharmony_ci    g_publishInfo.capability = "osdCapability";
450060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
451060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
452060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
453060ff233Sopenharmony_ci}
454060ff233Sopenharmony_ci
455060ff233Sopenharmony_ci/**
456060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest001
457060ff233Sopenharmony_ci * @tc.desc: Test for invalid parameters
458060ff233Sopenharmony_ci * @tc.type: FUNC
459060ff233Sopenharmony_ci * @tc.require:
460060ff233Sopenharmony_ci */
461060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest001, TestSize.Level1)
462060ff233Sopenharmony_ci{
463060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(nullptr, &g_sInfo, &g_refreshCb);
464060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
465060ff233Sopenharmony_ci
466060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, nullptr, &g_refreshCb);
467060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
468060ff233Sopenharmony_ci
469060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_sInfo, nullptr);
470060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
471060ff233Sopenharmony_ci}
472060ff233Sopenharmony_ci
473060ff233Sopenharmony_ci/**
474060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest002
475060ff233Sopenharmony_ci * @tc.desc: Test for invalid packageName.
476060ff233Sopenharmony_ci * @tc.type: FUNC
477060ff233Sopenharmony_ci * @tc.require:The PublishLNN operates normally.
478060ff233Sopenharmony_ci */
479060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest002, TestSize.Level1)
480060ff233Sopenharmony_ci{
481060ff233Sopenharmony_ci    g_sInfo.subscribeId = GetSubscribeId();
482060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(g_erroPkgName1, &g_sInfo, &g_refreshCb);
483060ff233Sopenharmony_ci    EXPECT_NE(ret, SOFTBUS_OK);
484060ff233Sopenharmony_ci}
485060ff233Sopenharmony_ci
486060ff233Sopenharmony_ci/**
487060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest003
488060ff233Sopenharmony_ci * @tc.desc: Test for invalid SubscribeInfo.
489060ff233Sopenharmony_ci * @tc.type: FUNC
490060ff233Sopenharmony_ci * @tc.require:
491060ff233Sopenharmony_ci */
492060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest003, TestSize.Level1)
493060ff233Sopenharmony_ci{
494060ff233Sopenharmony_ci    SubscribeInfo testInfo = {
495060ff233Sopenharmony_ci        .subscribeId = GetSubscribeId(),
496060ff233Sopenharmony_ci        .mode = DISCOVER_MODE_ACTIVE,
497060ff233Sopenharmony_ci        .medium = COAP,
498060ff233Sopenharmony_ci        .freq = MID,
499060ff233Sopenharmony_ci        .isSameAccount = true,
500060ff233Sopenharmony_ci        .isWakeRemote = false,
501060ff233Sopenharmony_ci        .capability = "dvKit",
502060ff233Sopenharmony_ci        .capabilityData = (unsigned char *)"capdata3",
503060ff233Sopenharmony_ci        .dataLen = (unsigned int) strlen("capdata3")
504060ff233Sopenharmony_ci    };
505060ff233Sopenharmony_ci
506060ff233Sopenharmony_ci    testInfo.mode = (DiscoverMode)(DISCOVER_MODE_ACTIVE + 1);
507060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
508060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
509060ff233Sopenharmony_ci    testInfo.mode = (DiscoverMode)(DISCOVER_MODE_PASSIVE - 1);
510060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
511060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
512060ff233Sopenharmony_ci    testInfo.mode = DISCOVER_MODE_PASSIVE;
513060ff233Sopenharmony_ci
514060ff233Sopenharmony_ci    testInfo.medium = (ExchangeMedium)(COAP + 1);
515060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
516060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
517060ff233Sopenharmony_ci    testInfo.medium = (ExchangeMedium)(AUTO - 1);
518060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
519060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
520060ff233Sopenharmony_ci    testInfo.medium = COAP;
521060ff233Sopenharmony_ci
522060ff233Sopenharmony_ci    testInfo.freq = (ExchangeFreq)(FREQ_BUTT);
523060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
524060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
525060ff233Sopenharmony_ci    testInfo.freq = (ExchangeFreq)(LOW - 1);
526060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
527060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
528060ff233Sopenharmony_ci    testInfo.freq = LOW;
529060ff233Sopenharmony_ci
530060ff233Sopenharmony_ci    testInfo.capabilityData = nullptr;
531060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
532060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
533060ff233Sopenharmony_ci    testInfo.capabilityData = (unsigned char *)"capdata1";
534060ff233Sopenharmony_ci
535060ff233Sopenharmony_ci    testInfo.dataLen = ERRO_CAPDATA_LEN;
536060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
537060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
538060ff233Sopenharmony_ci}
539060ff233Sopenharmony_ci
540060ff233Sopenharmony_ci/**
541060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest004
542060ff233Sopenharmony_ci * @tc.desc: Verify the RefreshLNN normal case.
543060ff233Sopenharmony_ci * @tc.type: FUNC
544060ff233Sopenharmony_ci * @tc.require:
545060ff233Sopenharmony_ci */
546060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest004, TestSize.Level1)
547060ff233Sopenharmony_ci{
548060ff233Sopenharmony_ci    g_sInfo.subscribeId = GetSubscribeId();
549060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(g_pkgName, &g_sInfo, &g_refreshCb);
550060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
551060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_sInfo.subscribeId);
552060ff233Sopenharmony_ci
553060ff233Sopenharmony_ci    g_sInfo1.subscribeId = GetSubscribeId();
554060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_sInfo1, &g_refreshCb);
555060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
556060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_sInfo1.subscribeId);
557060ff233Sopenharmony_ci
558060ff233Sopenharmony_ci    g_sInfo1.subscribeId = GetSubscribeId();
559060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName_1, &g_sInfo1, &g_refreshCb);
560060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
561060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_sInfo1.subscribeId);
562060ff233Sopenharmony_ci}
563060ff233Sopenharmony_ci
564060ff233Sopenharmony_ci/**
565060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest005
566060ff233Sopenharmony_ci * @tc.desc: Test different freq with passive CoAP discovery.
567060ff233Sopenharmony_ci * @tc.type: FUNC
568060ff233Sopenharmony_ci * @tc.require: The RefreshLNN and StopRefreshLNN operates normally.
569060ff233Sopenharmony_ci */
570060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest005, TestSize.Level1)
571060ff233Sopenharmony_ci{
572060ff233Sopenharmony_ci    g_subscribeInfo.subscribeId = GetSubscribeId();
573060ff233Sopenharmony_ci    g_subscribeInfo.mode = DISCOVER_MODE_PASSIVE;
574060ff233Sopenharmony_ci    g_subscribeInfo.medium = COAP;
575060ff233Sopenharmony_ci
576060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
577060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
578060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
579060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
580060ff233Sopenharmony_ci
581060ff233Sopenharmony_ci    g_subscribeInfo.freq = MID;
582060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
583060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
584060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
585060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
586060ff233Sopenharmony_ci
587060ff233Sopenharmony_ci    g_subscribeInfo.freq = HIGH;
588060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
589060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
590060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
591060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
592060ff233Sopenharmony_ci
593060ff233Sopenharmony_ci    g_subscribeInfo.freq = SUPER_HIGH;
594060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
595060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
596060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
597060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
598060ff233Sopenharmony_ci
599060ff233Sopenharmony_ci    g_subscribeInfo.freq = EXTREME_HIGH;
600060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
601060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
602060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
603060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
604060ff233Sopenharmony_ci}
605060ff233Sopenharmony_ci
606060ff233Sopenharmony_ci/**
607060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest006
608060ff233Sopenharmony_ci * @tc.desc: Test different freq with passive BLE discovery.
609060ff233Sopenharmony_ci * @tc.type: FUNC
610060ff233Sopenharmony_ci * @tc.require: The RefreshLNN and StopRefreshLNN operates normally.
611060ff233Sopenharmony_ci */
612060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest006, TestSize.Level1)
613060ff233Sopenharmony_ci{
614060ff233Sopenharmony_ci    g_subscribeInfo.subscribeId = GetSubscribeId();
615060ff233Sopenharmony_ci    g_subscribeInfo.mode = DISCOVER_MODE_PASSIVE;
616060ff233Sopenharmony_ci    g_subscribeInfo.medium = BLE;
617060ff233Sopenharmony_ci
618060ff233Sopenharmony_ci    bool isBtOn = SoftbusTestGetBtStatus();
619060ff233Sopenharmony_ci    printf("bt status %s\n", isBtOn ? "on" : "off");
620060ff233Sopenharmony_ci
621060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
622060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
623060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
624060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
625060ff233Sopenharmony_ci
626060ff233Sopenharmony_ci    g_subscribeInfo.freq = MID;
627060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
628060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
629060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
630060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
631060ff233Sopenharmony_ci
632060ff233Sopenharmony_ci    g_subscribeInfo.freq = HIGH;
633060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
634060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
635060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
636060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
637060ff233Sopenharmony_ci
638060ff233Sopenharmony_ci    g_subscribeInfo.freq = SUPER_HIGH;
639060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
640060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
641060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
642060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
643060ff233Sopenharmony_ci
644060ff233Sopenharmony_ci    g_subscribeInfo.freq = EXTREME_HIGH;
645060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
646060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
647060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
648060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
649060ff233Sopenharmony_ci}
650060ff233Sopenharmony_ci
651060ff233Sopenharmony_ci/**
652060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest007
653060ff233Sopenharmony_ci * @tc.desc: Test different capability with passive CoAP discovery.
654060ff233Sopenharmony_ci * @tc.type: FUNC
655060ff233Sopenharmony_ci * @tc.require: The RefreshLNN and StopRefreshLNN operates normally.
656060ff233Sopenharmony_ci */
657060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest007, TestSize.Level1)
658060ff233Sopenharmony_ci{
659060ff233Sopenharmony_ci    g_subscribeInfo.subscribeId = GetSubscribeId();
660060ff233Sopenharmony_ci    g_subscribeInfo.mode = DISCOVER_MODE_PASSIVE;
661060ff233Sopenharmony_ci    g_subscribeInfo.medium = COAP;
662060ff233Sopenharmony_ci
663060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
664060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
665060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
666060ff233Sopenharmony_ci
667060ff233Sopenharmony_ci    g_subscribeInfo.capability = "hicall";
668060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
669060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
670060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
671060ff233Sopenharmony_ci
672060ff233Sopenharmony_ci    g_subscribeInfo.capability = "profile";
673060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
674060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
675060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
676060ff233Sopenharmony_ci
677060ff233Sopenharmony_ci    g_subscribeInfo.capability = "homevisionPic";
678060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
679060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
680060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
681060ff233Sopenharmony_ci
682060ff233Sopenharmony_ci    g_subscribeInfo.capability = "castPlus";
683060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
684060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
685060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
686060ff233Sopenharmony_ci
687060ff233Sopenharmony_ci    g_subscribeInfo.capability = "aaCapability";
688060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
689060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
690060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
691060ff233Sopenharmony_ci
692060ff233Sopenharmony_ci    g_subscribeInfo.capability = "ddmpCapability";
693060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
694060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
695060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
696060ff233Sopenharmony_ci
697060ff233Sopenharmony_ci    g_subscribeInfo.capability = "osdCapability";
698060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
699060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
700060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
701060ff233Sopenharmony_ci}
702060ff233Sopenharmony_ci
703060ff233Sopenharmony_ci/**
704060ff233Sopenharmony_ci * @tc.name: RefreshLNNTest008
705060ff233Sopenharmony_ci * @tc.desc: Test different capability with passive BLE discovery: dvKit, castPlus, osdCapability
706060ff233Sopenharmony_ci * @tc.type: FUNC
707060ff233Sopenharmony_ci * @tc.require: The RefreshLNN and StopRefreshLNN operates normally.
708060ff233Sopenharmony_ci */
709060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, RefreshLNNTest008, TestSize.Level1)
710060ff233Sopenharmony_ci{
711060ff233Sopenharmony_ci    g_subscribeInfo.subscribeId = GetSubscribeId();
712060ff233Sopenharmony_ci    g_subscribeInfo.mode = DISCOVER_MODE_PASSIVE;
713060ff233Sopenharmony_ci    g_subscribeInfo.medium = BLE;
714060ff233Sopenharmony_ci
715060ff233Sopenharmony_ci    bool isBtOn = SoftbusTestGetBtStatus();
716060ff233Sopenharmony_ci    printf("bt status %s\n", isBtOn ? "on" : "off");
717060ff233Sopenharmony_ci
718060ff233Sopenharmony_ci    g_subscribeInfo.capability = "dvKit";
719060ff233Sopenharmony_ci    int32_t ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
720060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
721060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
722060ff233Sopenharmony_ci
723060ff233Sopenharmony_ci    g_subscribeInfo.capability = "castPlus";
724060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
725060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
726060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
727060ff233Sopenharmony_ci
728060ff233Sopenharmony_ci    g_subscribeInfo.capability = "osdCapability";
729060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
730060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
731060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
732060ff233Sopenharmony_ci}
733060ff233Sopenharmony_ci
734060ff233Sopenharmony_ci/**
735060ff233Sopenharmony_ci * @tc.name: StopPublishLNNTest001
736060ff233Sopenharmony_ci * @tc.desc: Verify StopPublishLNN invalid parameter.
737060ff233Sopenharmony_ci * @tc.type: FUNC
738060ff233Sopenharmony_ci * @tc.require:
739060ff233Sopenharmony_ci */
740060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopPublishLNNTest001, TestSize.Level1)
741060ff233Sopenharmony_ci{
742060ff233Sopenharmony_ci    int32_t tmpId = GetPublishId();
743060ff233Sopenharmony_ci    g_pInfo.publishId = tmpId;
744060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_pInfo, &g_publishCb);
745060ff233Sopenharmony_ci
746060ff233Sopenharmony_ci    int32_t ret = StopPublishLNN(nullptr, tmpId);
747060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
748060ff233Sopenharmony_ci
749060ff233Sopenharmony_ci    ret = StopPublishLNN(g_erroPkgName, tmpId);
750060ff233Sopenharmony_ci    EXPECT_NE(ret, SOFTBUS_OK);
751060ff233Sopenharmony_ci}
752060ff233Sopenharmony_ci
753060ff233Sopenharmony_ci/**
754060ff233Sopenharmony_ci * @tc.name: StopPublishLNNTest002
755060ff233Sopenharmony_ci * @tc.desc: Verify PublishLNN and StopPublishLNN normal case.
756060ff233Sopenharmony_ci * @tc.type: FUNC
757060ff233Sopenharmony_ci * @tc.require:
758060ff233Sopenharmony_ci */
759060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopPublishLNNTest002, TestSize.Level1)
760060ff233Sopenharmony_ci{
761060ff233Sopenharmony_ci    int32_t tmpId1 = GetPublishId();
762060ff233Sopenharmony_ci    int32_t tmpId2 = GetPublishId();
763060ff233Sopenharmony_ci
764060ff233Sopenharmony_ci    g_pInfo.publishId = tmpId1;
765060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_pInfo, &g_publishCb);
766060ff233Sopenharmony_ci    g_pInfo1.publishId = tmpId2;
767060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_pInfo1, &g_publishCb);
768060ff233Sopenharmony_ci
769060ff233Sopenharmony_ci    int32_t ret = StopPublishLNN(g_pkgName, tmpId1);
770060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
771060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, tmpId2);
772060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
773060ff233Sopenharmony_ci}
774060ff233Sopenharmony_ci
775060ff233Sopenharmony_ci/**
776060ff233Sopenharmony_ci * @tc.name: StopPublishLNNTest003
777060ff233Sopenharmony_ci * @tc.desc: Verify PublishLNN and StopPublishLNN same parameter again.
778060ff233Sopenharmony_ci * @tc.type: FUNC
779060ff233Sopenharmony_ci * @tc.require:
780060ff233Sopenharmony_ci */
781060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopPublishLNNTest003, TestSize.Level1)
782060ff233Sopenharmony_ci{
783060ff233Sopenharmony_ci    int32_t tmpId = GetPublishId();
784060ff233Sopenharmony_ci    g_pInfo.publishId = tmpId;
785060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_pInfo, &g_publishCb);
786060ff233Sopenharmony_ci
787060ff233Sopenharmony_ci    int32_t ret = StopPublishLNN(g_pkgName, tmpId);
788060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
789060ff233Sopenharmony_ci}
790060ff233Sopenharmony_ci
791060ff233Sopenharmony_ci/**
792060ff233Sopenharmony_ci * @tc.name: StopPublishLNNTest004
793060ff233Sopenharmony_ci * @tc.desc: Test different freq with stop passive CoAP publish.
794060ff233Sopenharmony_ci * @tc.type: FUNC
795060ff233Sopenharmony_ci * @tc.require: The StopPublishLNN operates normally.
796060ff233Sopenharmony_ci */
797060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopPublishLNNTest004, TestSize.Level1)
798060ff233Sopenharmony_ci{
799060ff233Sopenharmony_ci    g_publishInfo.publishId = GetPublishId();
800060ff233Sopenharmony_ci    g_publishInfo.mode = DISCOVER_MODE_PASSIVE;
801060ff233Sopenharmony_ci    g_publishInfo.medium = COAP;
802060ff233Sopenharmony_ci
803060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
804060ff233Sopenharmony_ci    int32_t ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
805060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
806060ff233Sopenharmony_ci
807060ff233Sopenharmony_ci    g_publishInfo.freq = MID;
808060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
809060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
810060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
811060ff233Sopenharmony_ci
812060ff233Sopenharmony_ci    g_publishInfo.freq = HIGH;
813060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
814060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
815060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
816060ff233Sopenharmony_ci
817060ff233Sopenharmony_ci    g_publishInfo.freq = SUPER_HIGH;
818060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
819060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
820060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
821060ff233Sopenharmony_ci
822060ff233Sopenharmony_ci    g_publishInfo.freq = EXTREME_HIGH;
823060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
824060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
825060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
826060ff233Sopenharmony_ci}
827060ff233Sopenharmony_ci
828060ff233Sopenharmony_ci/**
829060ff233Sopenharmony_ci * @tc.name: StopPublishLNNTest005
830060ff233Sopenharmony_ci * @tc.desc: Test different freq with stop passive BLE publish.
831060ff233Sopenharmony_ci * @tc.type: FUNC
832060ff233Sopenharmony_ci * @tc.require: The StopPublishLNN operates normally.
833060ff233Sopenharmony_ci */
834060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopPublishLNNTest005, TestSize.Level1)
835060ff233Sopenharmony_ci{
836060ff233Sopenharmony_ci    g_publishInfo.publishId = GetPublishId();
837060ff233Sopenharmony_ci    g_publishInfo.mode = DISCOVER_MODE_PASSIVE;
838060ff233Sopenharmony_ci    g_publishInfo.medium = BLE;
839060ff233Sopenharmony_ci
840060ff233Sopenharmony_ci    bool isBtOn = SoftbusTestGetBtStatus();
841060ff233Sopenharmony_ci    printf("bt status %s\n", isBtOn ? "on" : "off");
842060ff233Sopenharmony_ci
843060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
844060ff233Sopenharmony_ci    int32_t ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
845060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
846060ff233Sopenharmony_ci
847060ff233Sopenharmony_ci    g_publishInfo.freq = MID;
848060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
849060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
850060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
851060ff233Sopenharmony_ci
852060ff233Sopenharmony_ci    g_publishInfo.freq = HIGH;
853060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
854060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
855060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
856060ff233Sopenharmony_ci
857060ff233Sopenharmony_ci    g_publishInfo.freq = SUPER_HIGH;
858060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
859060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
860060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
861060ff233Sopenharmony_ci
862060ff233Sopenharmony_ci    g_publishInfo.freq = EXTREME_HIGH;
863060ff233Sopenharmony_ci    PublishLNN(g_pkgName, &g_publishInfo, &g_publishCb);
864060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, g_publishInfo.publishId);
865060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
866060ff233Sopenharmony_ci}
867060ff233Sopenharmony_ci
868060ff233Sopenharmony_ci/**
869060ff233Sopenharmony_ci * @tc.name: StopRefreshLNNTest001
870060ff233Sopenharmony_ci * @tc.desc: Verify StopRefreshLNN invalid parameter.
871060ff233Sopenharmony_ci * @tc.type: FUNC
872060ff233Sopenharmony_ci * @tc.require:
873060ff233Sopenharmony_ci */
874060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopRefreshLNNTest001, TestSize.Level1)
875060ff233Sopenharmony_ci{
876060ff233Sopenharmony_ci    int32_t tmpId = GetSubscribeId();
877060ff233Sopenharmony_ci    g_sInfo.subscribeId = tmpId;
878060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_sInfo, &g_refreshCb);
879060ff233Sopenharmony_ci
880060ff233Sopenharmony_ci    int32_t ret = StopRefreshLNN(nullptr, tmpId);
881060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
882060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_erroPkgName, tmpId);
883060ff233Sopenharmony_ci    EXPECT_NE(ret, SOFTBUS_OK);
884060ff233Sopenharmony_ci}
885060ff233Sopenharmony_ci
886060ff233Sopenharmony_ci/**
887060ff233Sopenharmony_ci * @tc.name: StopRefreshLNNTest002
888060ff233Sopenharmony_ci * @tc.desc: test under normal conditions.
889060ff233Sopenharmony_ci * @tc.type: FUNC
890060ff233Sopenharmony_ci * @tc.require:
891060ff233Sopenharmony_ci */
892060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopRefreshLNNTest002, TestSize.Level1)
893060ff233Sopenharmony_ci{
894060ff233Sopenharmony_ci    int32_t tmpId1 = GetSubscribeId();
895060ff233Sopenharmony_ci    int32_t tmpId2 = GetSubscribeId();
896060ff233Sopenharmony_ci
897060ff233Sopenharmony_ci    g_sInfo.subscribeId = tmpId1;
898060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_sInfo, &g_refreshCb);
899060ff233Sopenharmony_ci    g_sInfo1.subscribeId = tmpId2;
900060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_sInfo1, &g_refreshCb);
901060ff233Sopenharmony_ci
902060ff233Sopenharmony_ci    int32_t ret = StopRefreshLNN(g_pkgName, tmpId1);
903060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
904060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, tmpId2);
905060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
906060ff233Sopenharmony_ci}
907060ff233Sopenharmony_ci
908060ff233Sopenharmony_ci/**
909060ff233Sopenharmony_ci * @tc.name: StopRefreshLNNTest003
910060ff233Sopenharmony_ci * @tc.desc: Verify RefreshLNN and StopRefreshLNN same parameter again.
911060ff233Sopenharmony_ci * @tc.type: FUNC
912060ff233Sopenharmony_ci * @tc.require:
913060ff233Sopenharmony_ci */
914060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopRefreshLNNTest003, TestSize.Level1)
915060ff233Sopenharmony_ci{
916060ff233Sopenharmony_ci    int32_t tmpId = GetSubscribeId();
917060ff233Sopenharmony_ci    g_sInfo.subscribeId = tmpId;
918060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_sInfo, &g_refreshCb);
919060ff233Sopenharmony_ci
920060ff233Sopenharmony_ci    int32_t ret = StopRefreshLNN(g_pkgName, tmpId);
921060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
922060ff233Sopenharmony_ci}
923060ff233Sopenharmony_ci
924060ff233Sopenharmony_ci/**
925060ff233Sopenharmony_ci * @tc.name: StopRefreshLNNTest004
926060ff233Sopenharmony_ci * @tc.desc:Test different freq with stop passive CoAP discovery.
927060ff233Sopenharmony_ci * @tc.type: FUNC
928060ff233Sopenharmony_ci * @tc.require: The StopRefreshLNN operates normally
929060ff233Sopenharmony_ci */
930060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopRefreshLNNTest004, TestSize.Level1)
931060ff233Sopenharmony_ci{
932060ff233Sopenharmony_ci    g_subscribeInfo.subscribeId = GetSubscribeId();
933060ff233Sopenharmony_ci    g_subscribeInfo.mode = DISCOVER_MODE_PASSIVE;
934060ff233Sopenharmony_ci    g_subscribeInfo.medium = COAP;
935060ff233Sopenharmony_ci
936060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
937060ff233Sopenharmony_ci    int32_t ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
938060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
939060ff233Sopenharmony_ci
940060ff233Sopenharmony_ci    g_subscribeInfo.freq = MID;
941060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
942060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
943060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
944060ff233Sopenharmony_ci
945060ff233Sopenharmony_ci    g_subscribeInfo.freq = HIGH;
946060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
947060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
948060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
949060ff233Sopenharmony_ci
950060ff233Sopenharmony_ci    g_subscribeInfo.freq = SUPER_HIGH;
951060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
952060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
953060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
954060ff233Sopenharmony_ci
955060ff233Sopenharmony_ci    g_subscribeInfo.freq = EXTREME_HIGH;
956060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
957060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
958060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
959060ff233Sopenharmony_ci}
960060ff233Sopenharmony_ci
961060ff233Sopenharmony_ci/**
962060ff233Sopenharmony_ci * @tc.name: StopRefreshLNNTest005
963060ff233Sopenharmony_ci * @tc.desc:Test different freq with stop passive BLE discovery.
964060ff233Sopenharmony_ci * @tc.type: FUNC
965060ff233Sopenharmony_ci * @tc.require: The StopRefreshLNN operates normally
966060ff233Sopenharmony_ci */
967060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, StopRefreshLNNTest005, TestSize.Level1)
968060ff233Sopenharmony_ci{
969060ff233Sopenharmony_ci    g_subscribeInfo.subscribeId = GetSubscribeId();
970060ff233Sopenharmony_ci    g_subscribeInfo.mode = DISCOVER_MODE_PASSIVE;
971060ff233Sopenharmony_ci    g_subscribeInfo.medium = BLE;
972060ff233Sopenharmony_ci
973060ff233Sopenharmony_ci    bool isBtOn = SoftbusTestGetBtStatus();
974060ff233Sopenharmony_ci    printf("bt status %s\n", isBtOn ? "on" : "off");
975060ff233Sopenharmony_ci
976060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
977060ff233Sopenharmony_ci    int32_t ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
978060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
979060ff233Sopenharmony_ci
980060ff233Sopenharmony_ci    g_subscribeInfo.freq = MID;
981060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
982060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
983060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
984060ff233Sopenharmony_ci
985060ff233Sopenharmony_ci    g_subscribeInfo.freq = HIGH;
986060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
987060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
988060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
989060ff233Sopenharmony_ci
990060ff233Sopenharmony_ci    g_subscribeInfo.freq = SUPER_HIGH;
991060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
992060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
993060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
994060ff233Sopenharmony_ci
995060ff233Sopenharmony_ci    g_subscribeInfo.freq = EXTREME_HIGH;
996060ff233Sopenharmony_ci    RefreshLNN(g_pkgName, &g_subscribeInfo, &g_refreshCb);
997060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, g_subscribeInfo.subscribeId);
998060ff233Sopenharmony_ci    EXPECT_EQ(isBtOn, (ret == SOFTBUS_OK));
999060ff233Sopenharmony_ci}
1000060ff233Sopenharmony_ci
1001060ff233Sopenharmony_ci/**
1002060ff233Sopenharmony_ci * @tc.name:DiscRecoveryPublishTest01
1003060ff233Sopenharmony_ci * @tc.desc: Test recovery publish.
1004060ff233Sopenharmony_ci * @tc.in: Test module, Test number, Test levels.
1005060ff233Sopenharmony_ci * @tc.out: Zero
1006060ff233Sopenharmony_ci * @tc.type: FUNC
1007060ff233Sopenharmony_ci * @tc.require:The DiscRecoveryPublish operates normally
1008060ff233Sopenharmony_ci */
1009060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, DiscRecoveryPublishTest01, TestSize.Level1)
1010060ff233Sopenharmony_ci{
1011060ff233Sopenharmony_ci    int32_t ret;
1012060ff233Sopenharmony_ci    PublishInfo testInfo = {
1013060ff233Sopenharmony_ci        .publishId = GetPublishId(),
1014060ff233Sopenharmony_ci        .mode = DISCOVER_MODE_PASSIVE,
1015060ff233Sopenharmony_ci        .medium = COAP,
1016060ff233Sopenharmony_ci        .freq = LOW,
1017060ff233Sopenharmony_ci        .capability = "dvKit",
1018060ff233Sopenharmony_ci        .capabilityData = (unsigned char *)"capdata2",
1019060ff233Sopenharmony_ci        .dataLen = (unsigned int) strlen("capdata2")
1020060ff233Sopenharmony_ci    };
1021060ff233Sopenharmony_ci    BusCenterClientDeinit();
1022060ff233Sopenharmony_ci    BusCenterClientInit();
1023060ff233Sopenharmony_ci    ret = DiscRecoveryPublish();
1024060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1025060ff233Sopenharmony_ci
1026060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
1027060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1028060ff233Sopenharmony_ci    ret = DiscRecoveryPublish();
1029060ff233Sopenharmony_ci    EXPECT_TRUE(ret != 0);
1030060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, testInfo.publishId);
1031060ff233Sopenharmony_ci
1032060ff233Sopenharmony_ci    ret = PublishLNN(g_pkgName, &testInfo, &g_publishCb);
1033060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1034060ff233Sopenharmony_ci    ret = StopPublishLNN(g_pkgName, testInfo.publishId);
1035060ff233Sopenharmony_ci    ret = DiscRecoveryPublish();
1036060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1037060ff233Sopenharmony_ci}
1038060ff233Sopenharmony_ci
1039060ff233Sopenharmony_ci/**
1040060ff233Sopenharmony_ci * @tc.name:DiscRecoverySubscribeTest01
1041060ff233Sopenharmony_ci * @tc.desc: Test recovery subscribe.
1042060ff233Sopenharmony_ci * @tc.in: Test module, Test number, Test levels.
1043060ff233Sopenharmony_ci * @tc.out: Zero
1044060ff233Sopenharmony_ci * @tc.type: FUNC
1045060ff233Sopenharmony_ci * @tc.require:The DiscRecoverySubscribe operates normally
1046060ff233Sopenharmony_ci */
1047060ff233Sopenharmony_ciHWTEST_F(DiscSdkTest, DiscRecoverySubscribeTest01, TestSize.Level1)
1048060ff233Sopenharmony_ci{
1049060ff233Sopenharmony_ci    int32_t ret;
1050060ff233Sopenharmony_ci    SubscribeInfo testInfo = {
1051060ff233Sopenharmony_ci        .subscribeId = GetSubscribeId(),
1052060ff233Sopenharmony_ci        .mode = DISCOVER_MODE_PASSIVE,
1053060ff233Sopenharmony_ci        .medium = AUTO,
1054060ff233Sopenharmony_ci        .freq = LOW,
1055060ff233Sopenharmony_ci        .isSameAccount = true,
1056060ff233Sopenharmony_ci        .isWakeRemote = false,
1057060ff233Sopenharmony_ci        .capability = "dvKit",
1058060ff233Sopenharmony_ci        .capabilityData = (unsigned char *)"capdata3",
1059060ff233Sopenharmony_ci        .dataLen = (unsigned int) strlen("capdata3")
1060060ff233Sopenharmony_ci    };
1061060ff233Sopenharmony_ci    BusCenterClientDeinit();
1062060ff233Sopenharmony_ci    BusCenterClientInit();
1063060ff233Sopenharmony_ci    ret = DiscRecoverySubscribe();
1064060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1065060ff233Sopenharmony_ci
1066060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
1067060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1068060ff233Sopenharmony_ci    ret = DiscRecoverySubscribe();
1069060ff233Sopenharmony_ci    EXPECT_TRUE(ret != 0);
1070060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, testInfo.subscribeId);
1071060ff233Sopenharmony_ci
1072060ff233Sopenharmony_ci    ret = RefreshLNN(g_pkgName, &testInfo, &g_refreshCb);
1073060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1074060ff233Sopenharmony_ci    ret = StopRefreshLNN(g_pkgName, testInfo.subscribeId);
1075060ff233Sopenharmony_ci    ret = DiscRecoverySubscribe();
1076060ff233Sopenharmony_ci    EXPECT_EQ(ret, SOFTBUS_OK);
1077060ff233Sopenharmony_ci}
1078060ff233Sopenharmony_ci} // namespace OHOS