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 #ifndef LNN_LANE_DEPS_MOCK_H 17 #define LNN_LANE_DEPS_MOCK_H 18 19 #include <gmock/gmock.h> 20 #include <mutex> 21 22 #include "auth_interface.h" 23 #include "auth_manager.h" 24 #include "lnn_distributed_net_ledger.h" 25 #include "lnn_lane.h" 26 #include "lnn_lane_link.h" 27 #include "lnn_lane_query.h" 28 #include "lnn_lane_score.h" 29 #include "lnn_lane_vap_info.h" 30 #include "lnn_local_net_ledger.h" 31 #include "lnn_node_info.h" 32 #include "bus_center_manager.h" 33 #include "softbus_conn_ble_connection.h" 34 #include "softbus_conn_interface.h" 35 #include "softbus_network_utils.h" 36 #include "lnn_physical_subnet_manager.h" 37 #include "softbus_base_listener.h" 38 #include "trans_network_statistics.h" 39 #include "wifi_direct_manager.h" 40 41 typedef enum { 42 LANE_MOCK_PARAM1 = 0, 43 LANE_MOCK_PARAM2, 44 LANE_MOCK_PARAM3, 45 LANE_MOCK_PARAM4, 46 LANE_MOCK_PARAM5, 47 LANE_MOCK_PARAM_BUTT 48 } LaneMockParamIndex; 49 50 namespace OHOS { 51 class LaneDepsInterface { 52 public: LaneDepsInterface()53 LaneDepsInterface() {}; ~LaneDepsInterface()54 virtual ~LaneDepsInterface() {}; 55 56 virtual int32_t AuthAllocConn(const char *networkId, uint32_t authRequestId, AuthConnCallback *callback) = 0; 57 virtual int32_t GetAuthLinkTypeList(const char *networkId, AuthLinkTypeList *linkTypeList) = 0; 58 virtual int32_t LnnGetRemoteNodeInfoById(const char *id, IdCategory type, NodeInfo *info) = 0; 59 virtual bool LnnHasDiscoveryType(const NodeInfo *info, DiscoveryType type) = 0; 60 virtual bool LnnGetOnlineStateById(const char *id, IdCategory type) = 0; 61 virtual int32_t LnnGetLocalNumInfo(InfoKey key, int32_t *info) = 0; 62 virtual int32_t LnnGetRemoteNumInfo(const char *netWorkId, InfoKey key, int32_t *info) = 0; 63 virtual int32_t LnnGetLocalStrInfo(InfoKey key, char *info, uint32_t len) = 0; 64 virtual int32_t LnnGetRemoteStrInfo(const char *netWorkId, InfoKey key, char *info, uint32_t len) = 0; 65 virtual int32_t AuthGetPreferConnInfo(const char *uuid, AuthConnInfo *connInfo, bool isMeta) = 0; 66 virtual int32_t AuthGetConnInfoByType(const char *uuid, AuthLinkType type, AuthConnInfo *connInfo, bool isMeta) = 0; 67 virtual int32_t AuthGetP2pConnInfo(const char *uuid, AuthConnInfo *connInfo, bool isMeta) = 0; 68 virtual int32_t AuthGetHmlConnInfo(const char *uuid, AuthConnInfo *connInfo, bool isMeta) = 0; 69 virtual int32_t AuthOpenConn(const AuthConnInfo *info, uint32_t requestId, 70 const AuthConnCallback *callback, bool isMeta) = 0; 71 virtual int SoftBusFrequencyToChannel(int frequency) = 0; 72 virtual NodeInfo *LnnGetNodeInfoById(const char *id, IdCategory type) = 0; 73 virtual const NodeInfo *LnnGetLocalNodeInfo(void) = 0; 74 virtual void AuthCloseConn(AuthHandle authHandle) = 0; 75 virtual int32_t AuthSetP2pMac(int64_t authId, const char *p2pMac) = 0; 76 virtual bool LnnVisitPhysicalSubnet(LnnVisitPhysicalSubnetCallback callback, void *data) = 0; 77 virtual const char *LnnConvertDLidToUdid(const char *id, IdCategory type) = 0; 78 virtual ConnBleConnection *ConnBleGetConnectionByUdid(const char *addr, const char *udid, 79 BleProtocolType protocol) = 0; 80 virtual int32_t LnnGetLocalNumU64Info(InfoKey key, uint64_t *info) = 0; 81 virtual int32_t LnnGetRemoteNumU64Info(const char *networkId, InfoKey key, uint64_t *info) = 0; 82 virtual int32_t LnnGetNetworkIdByUdid(const char *udid, char *buf, uint32_t len) = 0; 83 virtual bool AuthDeviceCheckConnInfo(const char *uuid, AuthLinkType type, bool checkConnection) = 0; 84 virtual uint32_t AuthGenRequestId(void) = 0; 85 virtual int32_t AuthPostTransData(AuthHandle authHandle, const AuthTransData *dataInfo) = 0; 86 virtual int32_t AuthGetConnInfo(AuthHandle authHandle, AuthConnInfo *connInfo) = 0; 87 virtual int32_t AuthGetMetaType(int64_t authId, bool *isMetaAuth) = 0; 88 virtual ConnBleConnection *ConnBleGetClientConnectionByUdid(const char *udid, BleProtocolType protocol) = 0; 89 virtual void ConnBleReturnConnection(ConnBleConnection **connection) = 0; 90 virtual bool ConnBleDirectIsEnable(BleProtocolType protocol) = 0; 91 virtual int32_t TransProxyCloseProxyChannel(int32_t channelId) = 0; 92 virtual LaneResource *GetValidLaneResource(LaneResource *resourceItem) = 0; 93 virtual int64_t GetAuthIdByConnInfo(const AuthConnInfo *connInfo) = 0; 94 virtual int32_t SoftBusGenerateStrHash(const unsigned char *str, uint32_t len, unsigned char *hash) = 0; 95 virtual int32_t StartBaseClient(ListenerModule module, const SoftbusBaseListener *listener) = 0; 96 virtual bool CheckActiveConnection(const ConnectOption *option, bool needOccupy) = 0; 97 virtual int32_t ConnOpenClientSocket(const ConnectOption *option, const char *bindAddr, bool isNonBlock) = 0; 98 virtual int32_t AddTrigger(ListenerModule module, int32_t fd, TriggerType trigger) = 0; 99 virtual int32_t QueryLaneResource(const LaneQueryInfo *queryInfo, const QosInfo *qosInfo) = 0; 100 virtual ssize_t ConnSendSocketData(int32_t fd, const char *buf, size_t len, int32_t timeout) = 0; 101 virtual struct WifiDirectManager* GetWifiDirectManager(void) = 0; 102 virtual int32_t LnnGetRemoteNumU32Info(const char *networkId, InfoKey key, uint32_t *info) = 0; 103 virtual int32_t LnnGetLocalNumU32Info(InfoKey key, uint32_t *info) = 0; 104 virtual int32_t LnnSetLocalNumU32Info(InfoKey key, uint32_t info) = 0; 105 virtual int32_t LnnSetNetCapability(uint32_t *capability, NetCapability type) = 0; 106 virtual void LnnDumpLocalBasicInfo(void) = 0; 107 virtual void LnnDumpOnlineDeviceInfo(void) = 0; 108 virtual int32_t LnnConvertDlId(const char *srcId, IdCategory srcIdType, IdCategory dstIdType, 109 char *dstIdBuf, uint32_t dstIdBufLen) = 0; 110 virtual void AuthDeviceGetLatestIdByUuid(const char *uuid, AuthLinkType type, AuthHandle *authHandle) = 0; 111 virtual int32_t LnnGetOsTypeByNetworkId(const char *networkId, int32_t *osType) = 0; 112 virtual void DeleteNetworkResourceByLaneId(uint64_t laneId) = 0; 113 virtual int SoftBusGetBtState() = 0; 114 virtual int32_t LnnGetAllOnlineNodeInfo(NodeBasicInfo **info, int32_t *infoNum) = 0; 115 virtual void AddNetworkResource(NetworkResource *networkResource) = 0; 116 virtual int32_t AuthCheckMetaExist(const AuthConnInfo *connInfo, bool *isExist) = 0; 117 }; 118 119 class LaneDepsInterfaceMock : public LaneDepsInterface { 120 public: 121 LaneDepsInterfaceMock(); 122 ~LaneDepsInterfaceMock() override; 123 MOCK_METHOD2(GetAuthLinkTypeList, int32_t (const char*, AuthLinkTypeList *)); 124 MOCK_METHOD3(AuthAllocConn, int32_t (const char *networkId, uint32_t authRequestId, AuthConnCallback *callback)); 125 MOCK_METHOD3(LnnGetRemoteNodeInfoById, int32_t (const char*, IdCategory, NodeInfo *)); 126 MOCK_METHOD2(LnnHasDiscoveryType, bool (const NodeInfo *, DiscoveryType)); 127 MOCK_METHOD2(LnnGetOnlineStateById, bool (const char*, IdCategory)); 128 MOCK_METHOD3(LnnGetLocalStrInfo, int32_t (InfoKey, char*, uint32_t)); 129 MOCK_METHOD4(LnnGetRemoteStrInfo, int32_t (const char*, InfoKey, char*, uint32_t)); 130 MOCK_METHOD3(AuthGetPreferConnInfo, int32_t (const char*, AuthConnInfo*, bool)); 131 MOCK_METHOD4(AuthGetConnInfoByType, int32_t (const char*, AuthLinkType, AuthConnInfo *, bool)); 132 MOCK_METHOD3(AuthGetP2pConnInfo, int32_t (const char*, AuthConnInfo*, bool)); 133 MOCK_METHOD3(AuthGetHmlConnInfo, int32_t (const char*, AuthConnInfo*, bool)); 134 MOCK_METHOD4(AuthOpenConn, int32_t (const AuthConnInfo*, uint32_t, const AuthConnCallback*, bool)); 135 MOCK_METHOD1(SoftBusFrequencyToChannel, int (int)); 136 MOCK_METHOD2(LnnGetLocalNumInfo, int32_t (InfoKey, int32_t*)); 137 MOCK_METHOD3(LnnGetRemoteNumInfo, int32_t (const char*, InfoKey, int32_t*)); 138 MOCK_METHOD2(LnnGetNodeInfoById, NodeInfo* (const char*, IdCategory)); 139 MOCK_METHOD0(LnnGetLocalNodeInfo, NodeInfo * (void)); 140 MOCK_METHOD1(AuthCloseConn, void (AuthHandle)); 141 MOCK_METHOD2(AuthSetP2pMac, int32_t (int64_t, const char*)); 142 MOCK_METHOD2(LnnVisitPhysicalSubnet, bool (LnnVisitPhysicalSubnetCallback, void*)); 143 MOCK_METHOD2(LnnConvertDLidToUdid, const char *(const char *, IdCategory)); 144 MOCK_METHOD3(ConnBleGetConnectionByUdid, ConnBleConnection *(const char *, const char *, BleProtocolType)); 145 MOCK_METHOD2(LnnGetLocalNumU64Info, int32_t (InfoKey, uint64_t *)); 146 MOCK_METHOD3(LnnGetRemoteNumU64Info, int32_t (const char *, InfoKey, uint64_t *)); 147 MOCK_METHOD3(LnnGetNetworkIdByUdid, int32_t (const char *udid, char *buf, uint32_t len)); 148 MOCK_METHOD3(AuthDeviceCheckConnInfo, bool (const char *, AuthLinkType, bool)); 149 MOCK_METHOD0(AuthGenRequestId, uint32_t (void)); 150 MOCK_METHOD2(AuthPostTransData, int32_t (AuthHandle, const AuthTransData *)); 151 MOCK_METHOD2(AuthGetConnInfo, int32_t (AuthHandle, AuthConnInfo *)); 152 MOCK_METHOD2(AuthGetMetaType, int32_t (int64_t, bool *)); 153 MOCK_METHOD2(ConnBleGetClientConnectionByUdid, ConnBleConnection *(const char *, BleProtocolType)); 154 MOCK_METHOD1(ConnBleReturnConnection, void (ConnBleConnection **)); 155 MOCK_METHOD1(ConnBleDirectIsEnable, bool (BleProtocolType)); 156 MOCK_METHOD1(TransProxyCloseProxyChannel, int32_t(int32_t)); 157 MOCK_METHOD1(GetValidLaneResource, LaneResource* (LaneResource *)); 158 MOCK_METHOD1(GetAuthIdByConnInfo, int64_t(const AuthConnInfo *)); 159 MOCK_METHOD3(SoftBusGenerateStrHash, int32_t (const unsigned char *, uint32_t, unsigned char *)); 160 MOCK_METHOD2(StartBaseClient, int32_t (ListenerModule module, const SoftbusBaseListener *listener)); 161 MOCK_METHOD2(CheckActiveConnection, bool (const ConnectOption *, bool)); 162 MOCK_METHOD3(ConnOpenClientSocket, int32_t (const ConnectOption *option, const char *bindAddr, bool isNonBlock)); 163 MOCK_METHOD3(AddTrigger, int32_t (ListenerModule module, int32_t fd, TriggerType trigger)); 164 MOCK_METHOD2(QueryLaneResource, int32_t (const LaneQueryInfo *, const QosInfo *)); 165 MOCK_METHOD4(ConnSendSocketData, ssize_t (int32_t fd, const char *buf, size_t len, int32_t timeout)); 166 MOCK_METHOD0(GetWifiDirectManager, struct WifiDirectManager* (void)); 167 MOCK_METHOD3(LnnGetRemoteNumU32Info, int32_t (const char *networkId, InfoKey key, uint32_t *info)); 168 MOCK_METHOD2(LnnGetLocalNumU32Info, int32_t (InfoKey key, uint32_t *info)); 169 MOCK_METHOD2(LnnSetLocalNumU32Info, int32_t (InfoKey key, uint32_t info)); 170 MOCK_METHOD2(LnnSetNetCapability, int32_t (uint32_t *capability, NetCapability type)); 171 MOCK_METHOD0(LnnDumpLocalBasicInfo, void (void)); 172 MOCK_METHOD0(LnnDumpOnlineDeviceInfo, void (void)); 173 MOCK_METHOD5(LnnConvertDlId, int32_t (const char *srcId, IdCategory srcIdType, IdCategory dstIdType, 174 char *dstIdBuf, uint32_t dstIdBufLen)); 175 MOCK_METHOD3(AuthDeviceGetLatestIdByUuid, void (const char *uuid, AuthLinkType type, AuthHandle *authHandle)); 176 MOCK_METHOD2(LnnGetOsTypeByNetworkId, int32_t (const char *, int32_t *)); 177 MOCK_METHOD1(DeleteNetworkResourceByLaneId, void (uint64_t laneId)); 178 MOCK_METHOD0(SoftBusGetBtState, int (void)); 179 MOCK_METHOD2(LnnGetAllOnlineNodeInfo, int32_t (NodeBasicInfo **info, int32_t *infoNum)); 180 MOCK_METHOD1(AddNetworkResource, void (NetworkResource *)); 181 MOCK_METHOD2(AuthCheckMetaExist, int32_t (const AuthConnInfo *connInfo, bool *isExist)); 182 void SetDefaultResult(NodeInfo *info); 183 void SetDefaultResultForAlloc(int32_t localNetCap, int32_t remoteNetCap, 184 int32_t localFeatureCap, int32_t remoteFeatureCap); 185 static int32_t ActionOfGenerateStrHash(const unsigned char *str, uint32_t len, unsigned char *hash); 186 static int32_t ActionOfGetRemoteStrInfo(const char *netWorkId, InfoKey key, char *info, uint32_t len); 187 static int32_t ActionOfStartBaseClient(ListenerModule module, const SoftbusBaseListener *listener); 188 static int32_t ActionOfAddTrigger(ListenerModule module, int32_t fd, TriggerType trigger); 189 static int32_t ActionOfConnOpenFailed(const AuthConnInfo *info, uint32_t requestId, 190 const AuthConnCallback *callback, bool isMeta); 191 static int32_t ActionOfConnOpened(const AuthConnInfo *info, uint32_t requestId, const AuthConnCallback *callback, 192 bool isMeta); 193 }; 194 } // namespace OHOS 195 #endif // LNN_LANE_DEPS_MOCK_H