• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 "disc_event.h"
17 #include "disc_hisysevent_matcher.h"
18 #include "hisysevent_mock.h"
19 #include "softbus_hisysevent_matcher.h"
20 #include "gtest/gtest.h"
21 
22 using namespace std;
23 using namespace testing;
24 using namespace testing::ext;
25 
26 namespace OHOS {
27 class DiscEventTest : public testing::Test { };
28 
29 /**
30  * @tc.name: DiscEventTest001
31  * @tc.desc: Test disc event form size
32  * @tc.type: FUNC
33  * @tc.require: I8HA59
34  */
35 HWTEST_F(DiscEventTest, DiscEventTest001, TestSize.Level0)
36 {
37     DiscEventExtra extra = {
38         .result = 1,
39         .errcode = 2233,
40         .broadcastType = 0, // invalid
41         .peerPort = "9000",
42     };
43     constexpr int32_t VALID_EXTRA_SIZE = 5;
44 
45     HiSysEventMock mock;
46     EXPECT_CALL(mock,
47         HiSysEvent_Write(_, _, StrEq(SOFTBUS_EVENT_DOMAIN), StrEq(DISC_EVENT_NAME), Eq(SOFTBUS_EVENT_TYPE_BEHAVIOR), _,
48             ParamArraySizeMatcher(VALID_EXTRA_SIZE)))
49         .Times(1);
50     DISC_EVENT(EVENT_SCENE_BLE, EVENT_STAGE_BROADCAST, extra);
51 }
52 
53 /**
54  * @tc.name: DiscEventTest002
55  * @tc.desc: Test all valid disc event form items
56  * @tc.type: FUNC
57  * @tc.require: I8HA59
58  */
59 HWTEST_F(DiscEventTest, DiscEventTest002, TestSize.Level0)
60 {
61     DiscEventExtra validExtra = {
62         .result = 1,
63         .errcode = 2,
64         .initType = 3,
65         .serverType = "4",
66         .advHandle = 5,
67         .bcOverMaxCnt = 6,
68         .interFuncType = 7,
69         .capabilityBit = 8,
70         .capabilityData = "testCapabilityData",
71         .bleTurnState = 10,
72         .ipLinkStatus = 11,
73         .coapChangeType = 12,
74         .broadcastType = 13,
75         .broadcastFreq = 14,
76         .minInterval = 15,
77         .maxInterval = 16,
78         .currentNum = 17,
79         .scanType = 18,
80         .scanCount = 19,
81         .scanCycle = "testScanCycle",
82         .discType = 21,
83         .discMode = 22,
84         .successCnt = 23,
85         .failCnt = 24,
86         .startTime = 25,
87         .costTime = 26,
88         .localNetworkId = "a8ynvpdaihw1f6nknjd2hkfhxljxypkr6kvjsbhnhpp16974uo4fvsrpfa6t50fm",
89         .peerIp = "10.11.12.1",
90         .peerBrMac = "dd:15:bc:b9:f2:05",
91         .peerBleMac = "dd:15:bc:b9:f2:04",
92         .peerWifiMac = "dd:15:bc:b9:f2:04",
93         .peerPort = "testPeerPort",
94         .peerNetworkId = "a8ynvpdaihw1f6nknjd2hkfhxljxypkr6kvjsbhnhpp16974uo4fvsrpfa6t50fm",
95         .peerDeviceType = "a8ynvpdaihw1f6nknjd2hkfhxljxypkr6kvjsbhnhpp16974uo4fvsrpfa6t50fm",
96         .callerPkg = "testCallerPkg",
97     };
98     constexpr int32_t VALID_EXTRA_SIZE = DISC_ASSIGNER_SIZE;
99 
100     HiSysEventMock mock;
101     EXPECT_CALL(mock,
102         HiSysEvent_Write(_, _, StrEq(SOFTBUS_EVENT_DOMAIN), StrEq(DISC_EVENT_NAME), Eq(SOFTBUS_EVENT_TYPE_BEHAVIOR),
103             DiscValidParamArrayMatcher(validExtra, VALID_EXTRA_SIZE), ParamArraySizeMatcher(VALID_EXTRA_SIZE)))
104         .Times(1);
105     DISC_EVENT(EVENT_SCENE_BLE, EVENT_STAGE_SCAN, validExtra);
106 }
107 
108 /**
109  * @tc.name: DiscEventTest003
110  * @tc.desc: Test all invalid disc event form items
111  * @tc.type: FUNC
112  * @tc.require: I8HA59
113  */
114 HWTEST_F(DiscEventTest, DiscEventTest003, TestSize.Level0)
115 {
116     DiscEventExtra invalidExtra = {
117         .result = -1,  // valid
118         .errcode = -2, // valid
119         .initType = -3,
120         .serverType = "",
121         .interFuncType = -5,
122         .capabilityBit = -6,
123         .capabilityData = "",
124         .bleTurnState = -8,
125         .ipLinkStatus = -9,
126         .coapChangeType = -10,
127         .broadcastType = -11,
128         .broadcastFreq = -12,
129         .scanType = -13,
130         .scanCycle = "",
131         .discType = -15,
132         .discMode = -16,
133         .costTime = -17,
134         .localNetworkId = "",
135         .peerIp = "",
136         .peerBrMac = "",
137         .peerBleMac = "",
138         .peerWifiMac = "",
139         .peerPort = "",
140         .peerNetworkId = "",
141         .peerDeviceType = "\0",
142         .callerPkg = nullptr,
143     };
144     constexpr int32_t VALID_EXTRA_SIZE = 4; // result, errcode is valid
145 
146     HiSysEventMock mock;
147     EXPECT_CALL(mock,
148         HiSysEvent_Write(_, _, StrEq(SOFTBUS_EVENT_DOMAIN), StrEq(DISC_EVENT_NAME), Eq(SOFTBUS_EVENT_TYPE_BEHAVIOR),
149             DiscInvalidParamArrayMatcher(invalidExtra, VALID_EXTRA_SIZE), ParamArraySizeMatcher(VALID_EXTRA_SIZE)))
150         .Times(1);
151     DISC_EVENT(EVENT_SCENE_BLE, EVENT_STAGE_SCAN, invalidExtra);
152 }
153 
154 /**
155  * @tc.name: DiscEventTest004
156  * @tc.desc: Test empty disc event form
157  * @tc.type: FUNC
158  * @tc.require: I8HA59
159  */
160 HWTEST_F(DiscEventTest, DiscEventTest004, TestSize.Level0)
161 {
162     DiscEventExtra emptyExtra = { 0 };
163     constexpr int32_t VALID_EXTRA_SIZE = 4; // result, errcode is valid
164 
165     HiSysEventMock mock;
166     EXPECT_CALL(mock,
167         HiSysEvent_Write(_, _, StrEq(SOFTBUS_EVENT_DOMAIN), StrEq(DISC_EVENT_NAME), Eq(SOFTBUS_EVENT_TYPE_BEHAVIOR),
168             DiscInvalidParamArrayMatcher(emptyExtra, VALID_EXTRA_SIZE), ParamArraySizeMatcher(VALID_EXTRA_SIZE)))
169         .Times(1);
170     DISC_EVENT(EVENT_SCENE_BLE, EVENT_STAGE_BROADCAST, emptyExtra);
171 }
172 } // namespace OHOS
173