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