• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 #include <unistd.h>
19 
20 #include "disc_coap.h"
21 #include "disc_manager.h"
22 #include "softbus_adapter_mem.h"
23 #include "softbus_error_code.h"
24 
25 
26 using namespace testing::ext;
27 namespace OHOS {
28 
29 static DiscoveryFuncInterface *g_discCoapFuncInterface = nullptr;
30 
31 class DiscCoapTest : public testing::Test {
32 public:
DiscCoapTest()33     DiscCoapTest()
34     {}
~DiscCoapTest()35     ~DiscCoapTest()
36     {}
37     static void SetUpTestCase(void);
38     static void TearDownTestCase(void);
SetUp()39     void SetUp() override {}
TearDown()40     void TearDown() override {}
41 };
42 
SetUpTestCase(void)43 void DiscCoapTest::SetUpTestCase(void)
44 {}
45 
TearDownTestCase(void)46 void DiscCoapTest::TearDownTestCase(void)
47 {}
48 
49 static DiscInnerCallback g_discInnerCb = {
50     .OnDeviceFound = NULL
51 };
52 
53 static PublishOption testPubOption = {
54     .freq = LOW,
55     .capabilityBitmap = {64},
56     .capabilityData = nullptr,
57     .dataLen = 0,
58     .ranging = false
59 };
60 
61 static SubscribeOption testSubOption = {
62     .freq = LOW,
63     .isSameAccount = false,
64     .isWakeRemote = false,
65     .capabilityBitmap = {128},
66     .capabilityData = nullptr,
67     .dataLen = 0
68 };
69 
70 /*
71  * @tc.name: testCoapPublish001
72  * @tc.desc: test CoapPublish
73  * @tc.type: FUNC
74  * @tc.require:
75  */
76 HWTEST_F(DiscCoapTest, testCoapPublish001, TestSize.Level1)
77 {
78     g_discCoapFuncInterface = DiscCoapInit(&g_discInnerCb);
79     int32_t ret = g_discCoapFuncInterface->Publish(nullptr);
80     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
81     ret = g_discCoapFuncInterface->Unpublish(nullptr);
82     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
83 
84     ret = g_discCoapFuncInterface->Publish(&testPubOption);
85     EXPECT_EQ(ret, SOFTBUS_OK);
86     ret = g_discCoapFuncInterface->Unpublish(&testPubOption);
87     EXPECT_EQ(ret, SOFTBUS_OK);
88 
89     testPubOption.ranging = true;
90     ret = g_discCoapFuncInterface->Publish(&testPubOption);
91     testPubOption.ranging = false;
92     EXPECT_EQ(ret, SOFTBUS_OK);
93     ret = g_discCoapFuncInterface->Unpublish(&testPubOption);
94     EXPECT_EQ(ret, SOFTBUS_OK);
95 
96     DiscCoapDeinit();
97     g_discCoapFuncInterface = nullptr;
98 }
99 
100 /*
101  * @tc.name: testCoapStartScan001
102  * @tc.desc: test CoapStartScan
103  * @tc.type: FUNC
104  * @tc.require:
105  */
106 HWTEST_F(DiscCoapTest, testCoapStartScan001, TestSize.Level1)
107 {
108     g_discCoapFuncInterface = DiscCoapInit(&g_discInnerCb);
109     int32_t ret = g_discCoapFuncInterface->StartScan(nullptr);
110     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
111     ret = g_discCoapFuncInterface->StopScan(nullptr);
112     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
113 
114     ret = g_discCoapFuncInterface->StartScan(&testPubOption);
115     EXPECT_EQ(ret, SOFTBUS_OK);
116     ret = g_discCoapFuncInterface->StopScan(&testPubOption);
117     EXPECT_EQ(ret, SOFTBUS_OK);
118 
119     testPubOption.ranging = true;
120     ret = g_discCoapFuncInterface->StartScan(&testPubOption);
121     testPubOption.ranging = false;
122     EXPECT_EQ(ret, SOFTBUS_OK);
123     ret = g_discCoapFuncInterface->StopScan(&testPubOption);
124     EXPECT_EQ(ret, SOFTBUS_OK);
125 
126     DiscCoapDeinit();
127     g_discCoapFuncInterface = nullptr;
128 }
129 
130 /*
131  * @tc.name: testCoapStartAdvertise001
132  * @tc.desc: test CoapStartAdvertise
133  * @tc.type: FUNC
134  * @tc.require:
135  */
136 HWTEST_F(DiscCoapTest, testCoapStartAdvertise001, TestSize.Level1)
137 {
138     g_discCoapFuncInterface = DiscCoapInit(&g_discInnerCb);
139     int32_t ret = g_discCoapFuncInterface->StartAdvertise(nullptr);
140     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
141     ret = g_discCoapFuncInterface->StopAdvertise(nullptr);
142     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
143 
144     ret = g_discCoapFuncInterface->StartAdvertise(&testSubOption);
145     EXPECT_EQ(ret, SOFTBUS_OK);
146     ret = g_discCoapFuncInterface->StopAdvertise(&testSubOption);
147     EXPECT_EQ(ret, SOFTBUS_OK);
148 
149     DiscCoapDeinit();
150     g_discCoapFuncInterface = nullptr;
151 }
152 
153 /*
154  * @tc.name: testCoapSubscribe001
155  * @tc.desc: test CoapSubscribe
156  * @tc.type: FUNC
157  * @tc.require:
158  */
159 HWTEST_F(DiscCoapTest, testCoapSubscribe001, TestSize.Level1)
160 {
161     g_discCoapFuncInterface = DiscCoapInit(&g_discInnerCb);
162     int32_t ret = g_discCoapFuncInterface->Subscribe(nullptr);
163     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
164     ret = g_discCoapFuncInterface->Unsubscribe(nullptr);
165     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
166 
167     ret = g_discCoapFuncInterface->Subscribe(&testSubOption);
168     EXPECT_EQ(ret, SOFTBUS_OK);
169     ret = g_discCoapFuncInterface->Unsubscribe(&testSubOption);
170     EXPECT_EQ(ret, SOFTBUS_OK);
171 
172     DiscCoapDeinit();
173     g_discCoapFuncInterface = nullptr;
174 }
175 
176 /*
177  * @tc.name: testCoapLinkStatusChanged001
178  * @tc.desc: test CoapLinkStatusChanged
179  * @tc.type: FUNC
180  * @tc.require:
181  */
182 HWTEST_F(DiscCoapTest, testCoapLinkStatusChanged001, TestSize.Level1)
183 {
184     g_discCoapFuncInterface = DiscCoapInit(&g_discInnerCb);
185     int32_t ret = g_discCoapFuncInterface->StartAdvertise(&testSubOption);
186     EXPECT_EQ(ret, SOFTBUS_OK);
187     ret = g_discCoapFuncInterface->StopAdvertise(&testSubOption);
188     EXPECT_EQ(ret, SOFTBUS_OK);
189 
190     g_discCoapFuncInterface->LinkStatusChanged(LINK_STATUS_UP);
191     ret = g_discCoapFuncInterface->StartAdvertise(&testSubOption);
192     EXPECT_EQ(ret, SOFTBUS_OK);
193     ret = g_discCoapFuncInterface->StopAdvertise(&testSubOption);
194     EXPECT_EQ(ret, SOFTBUS_OK);
195 
196     DiscCoapDeinit();
197     g_discCoapFuncInterface = nullptr;
198 }
199 
200 /*
201  * @tc.name: testCoapUpdateLocalDevInfo001
202  * @tc.desc: test CoapUpdateLocalDevInfo
203  * @tc.type: FUNC
204  * @tc.require:
205  */
206 HWTEST_F(DiscCoapTest, testCoapUpdateLocalDevInfo001, TestSize.Level1)
207 {
208     g_discCoapFuncInterface = DiscCoapInit(&g_discInnerCb);
209     int32_t ret = g_discCoapFuncInterface->StartAdvertise(&testSubOption);
210     EXPECT_EQ(ret, SOFTBUS_OK);
211     ret = g_discCoapFuncInterface->StopAdvertise(&testSubOption);
212     EXPECT_EQ(ret, SOFTBUS_OK);
213 
214     g_discCoapFuncInterface->UpdateLocalDeviceInfo(TYPE_LOCAL_DEVICE_NAME);
215     ret = g_discCoapFuncInterface->StartAdvertise(&testSubOption);
216     EXPECT_EQ(ret, SOFTBUS_OK);
217     ret = g_discCoapFuncInterface->StopAdvertise(&testSubOption);
218     EXPECT_EQ(ret, SOFTBUS_OK);
219 
220     g_discCoapFuncInterface->UpdateLocalDeviceInfo(TYPE_ACCOUNT);
221     ret = g_discCoapFuncInterface->StartAdvertise(&testSubOption);
222     EXPECT_EQ(ret, SOFTBUS_OK);
223     ret = g_discCoapFuncInterface->StopAdvertise(&testSubOption);
224     EXPECT_EQ(ret, SOFTBUS_OK);
225 
226     DiscCoapDeinit();
227     g_discCoapFuncInterface = nullptr;
228 }
229 }