1 /* 2 * Copyright (c) 2024 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_CONNECTION_FSM_MOCK_H 17 #define LNN_CONNECTION_FSM_MOCK_H 18 19 #include <gmock/gmock.h> 20 #include <mutex> 21 22 #include "auth_deviceprofile.h" 23 #include "auth_interface.h" 24 #include "auth_request.h" 25 #include "bus_center_event.h" 26 #include "bus_center_manager.h" 27 #include "lnn_ble_lpdevice.h" 28 #include "lnn_cipherkey_manager.h" 29 #include "lnn_connection_addr_utils.h" 30 #include "lnn_device_info_recovery.h" 31 #include "lnn_deviceinfo_to_profile.h" 32 #include "lnn_distributed_net_ledger.h" 33 #include "lnn_feature_capability.h" 34 #include "lnn_heartbeat_ctrl.h" 35 #include "lnn_heartbeat_utils.h" 36 #include "lnn_link_finder.h" 37 #include "lnn_network_manager.h" 38 #include "softbus_adapter_bt_common.h" 39 40 namespace OHOS { 41 class LnnConnFsmInterface { 42 public: LnnConnFsmInterface()43 LnnConnFsmInterface() {}; ~LnnConnFsmInterface()44 virtual ~LnnConnFsmInterface() {}; 45 virtual void LnnNotifyDeviceVerified(const char *udid) = 0; 46 virtual int32_t SoftBusGetBtState(void) = 0; 47 virtual int32_t LnnGenerateBtMacHash(const char *btMac, int32_t brMacLen, char *brMacHash, int32_t hashLen) = 0; 48 virtual void DeleteFromProfile(const char *udid) = 0; 49 virtual void SendDeviceStateToMlps(void *para) = 0; 50 virtual int32_t LnnUpdateNetworkId(const NodeInfo *newInfo) = 0; 51 virtual int32_t AuthGetServerSide(int64_t authId, bool *isServer) = 0; 52 virtual int32_t LnnRetrieveDeviceInfo(const char *udid, NodeInfo *deviceInfo) = 0; 53 virtual int32_t LnnRetrieveDeviceInfoByNetworkId(const char *networkId, NodeInfo *info) = 0; 54 virtual int32_t AuthRestoreAuthManager(const char *udidHash, const AuthConnInfo *connInfo, uint32_t requestId, 55 NodeInfo *nodeInfo, int64_t *authId) = 0; 56 virtual int32_t LnnLoadLocalBroadcastCipherKey(void) = 0; 57 virtual int32_t LnnGetLocalBroadcastCipherKey(BroadcastCipherKey *broadcastKey) = 0; 58 virtual int32_t LnnSetLocalByteInfo(InfoKey key, const uint8_t *info, uint32_t len) = 0; 59 virtual int32_t LnnInsertLinkFinderInfo(const char *networkId) = 0; 60 virtual int32_t LnnUpdateGroupType(const NodeInfo *info) = 0; 61 virtual void LnnNotifySingleOffLineEvent(const ConnectionAddr *addr, NodeBasicInfo *basicInfo) = 0; 62 virtual void LnnStopOfflineTimingByHeartbeat(const char *networkId, ConnectionAddrType addrType) = 0; 63 virtual int32_t LnnGetLocalNodeInfoSafe(NodeInfo *info) = 0; 64 virtual void SetLpKeepAliveState(void *para) = 0; 65 virtual const char *LnnPrintConnectionAddr(const ConnectionAddr *addr) = 0; 66 virtual bool LnnConvertAddrToAuthConnInfo(const ConnectionAddr *addr, AuthConnInfo *connInfo) = 0; 67 virtual DiscoveryType LnnConvAddrTypeToDiscType(ConnectionAddrType type) = 0; 68 virtual void LnnNotifyOOBEStateChangeEvent(SoftBusOOBEState state) = 0; 69 virtual void LnnNotifyStateForSession(char *udid, int32_t retCode) = 0; 70 virtual void AuthRemoveAuthManagerByAuthHandle(AuthHandle authHandle) = 0; 71 virtual void LnnNotifyHichainProofException( 72 const char *proofInfo, uint32_t proofLen, uint16_t deviceTypeId, int32_t errCode) = 0; 73 virtual void LnnNotifyDeviceTrustedChange(int32_t type, const char *msg, uint32_t msgLen) = 0; 74 virtual int32_t GetAuthRequest(uint32_t requestId, AuthRequest *request) = 0; 75 virtual void UpdateDpSameAccount(int64_t accountId, const char *deviceId, int32_t peerUserId) = 0; 76 virtual int32_t LnnGetAddrTypeByIfName(const char *ifName, ConnectionAddrType *type) = 0; 77 virtual bool LnnConvertAuthConnInfoToAddr( 78 ConnectionAddr *addr, const AuthConnInfo *connInfo, ConnectionAddrType hintType) = 0; 79 virtual int32_t LnnUpdateAccountInfo(const NodeInfo *info) = 0; 80 virtual int32_t LnnUpdateRemoteDeviceName(const NodeInfo *info) = 0; 81 virtual bool LnnIsSameConnectionAddr(const ConnectionAddr *addr1, const ConnectionAddr *addr2, bool isShort) = 0; 82 virtual void DelSessionKeyProfile(int32_t sessionKeyId) = 0; 83 virtual bool GetSessionKeyProfile(int32_t sessionKeyId, uint8_t *sessionKey, uint32_t *length) = 0; 84 }; 85 86 class LnnConnFsmInterfaceMock : public LnnConnFsmInterface { 87 public: 88 LnnConnFsmInterfaceMock(); 89 ~LnnConnFsmInterfaceMock() override; 90 MOCK_METHOD1(LnnNotifyDeviceVerified, void(const char *)); 91 MOCK_METHOD0(SoftBusGetBtState, int32_t(void)); 92 MOCK_METHOD4(LnnGenerateBtMacHash, int32_t(const char *, int32_t, char *, int32_t)); 93 MOCK_METHOD1(DeleteFromProfile, void(const char *)); 94 MOCK_METHOD1(SendDeviceStateToMlps, void(void *)); 95 MOCK_METHOD1(LnnUpdateNetworkId, int32_t(const NodeInfo *)); 96 MOCK_METHOD2(AuthGetServerSide, int32_t(int64_t, bool *)); 97 MOCK_METHOD2(LnnRetrieveDeviceInfo, int32_t(const char *, NodeInfo *)); 98 MOCK_METHOD2(LnnRetrieveDeviceInfoByNetworkId, int32_t(const char *, NodeInfo *)); 99 MOCK_METHOD5(AuthRestoreAuthManager, int32_t(const char *, const AuthConnInfo *, uint32_t, NodeInfo *, int64_t *)); 100 MOCK_METHOD0(LnnLoadLocalBroadcastCipherKey, int32_t(void)); 101 MOCK_METHOD1(LnnGetLocalBroadcastCipherKey, int32_t(BroadcastCipherKey *)); 102 MOCK_METHOD3(LnnSetLocalByteInfo, int32_t(InfoKey, const uint8_t *, uint32_t)); 103 MOCK_METHOD1(LnnInsertLinkFinderInfo, int32_t(const char *)); 104 MOCK_METHOD1(LnnUpdateGroupType, int32_t(const NodeInfo *)); 105 MOCK_METHOD2(LnnNotifySingleOffLineEvent, void(const ConnectionAddr *, NodeBasicInfo *)); 106 MOCK_METHOD2(LnnStopOfflineTimingByHeartbeat, void(const char *, ConnectionAddrType)); 107 MOCK_METHOD1(LnnGetLocalNodeInfoSafe, int32_t(NodeInfo *)); 108 MOCK_METHOD1(SetLpKeepAliveState, void(void *)); 109 MOCK_METHOD1(LnnPrintConnectionAddr, const char *(const ConnectionAddr *)); 110 MOCK_METHOD2(LnnConvertAddrToAuthConnInfo, bool(const ConnectionAddr *, AuthConnInfo *)); 111 MOCK_METHOD1(LnnConvAddrTypeToDiscType, DiscoveryType(ConnectionAddrType)); 112 MOCK_METHOD1(LnnNotifyOOBEStateChangeEvent, void(SoftBusOOBEState)); 113 MOCK_METHOD4(LnnNotifyHichainProofException, void(const char *, uint32_t, uint16_t, int32_t)); 114 MOCK_METHOD3(LnnNotifyDeviceTrustedChange, void(int32_t type, const char *msg, uint32_t msgLen)); 115 MOCK_METHOD2(LnnNotifyStateForSession, void(char *, int32_t)); 116 MOCK_METHOD1(AuthRemoveAuthManagerByAuthHandle, void(AuthHandle)); 117 MOCK_METHOD2(GetAuthRequest, int32_t(uint32_t, AuthRequest *)); 118 MOCK_METHOD3(UpdateDpSameAccount, void(int64_t, const char *, int32_t)); 119 MOCK_METHOD2(LnnGetAddrTypeByIfName, int32_t(const char *, ConnectionAddrType *)); 120 MOCK_METHOD3(LnnConvertAuthConnInfoToAddr, bool(ConnectionAddr *, const AuthConnInfo *, ConnectionAddrType)); 121 MOCK_METHOD1(LnnUpdateAccountInfo, int32_t(const NodeInfo *)); 122 MOCK_METHOD1(LnnUpdateRemoteDeviceName, int32_t(const NodeInfo *)); 123 MOCK_METHOD3(LnnIsSameConnectionAddr, bool(const ConnectionAddr *, const ConnectionAddr *, bool)); 124 MOCK_METHOD1(DelSessionKeyProfile, void(int32_t)); 125 MOCK_METHOD3(GetSessionKeyProfile, bool(int32_t, uint8_t *, uint32_t *)); 126 }; 127 } // namespace OHOS 128 #endif // LNN_CONNECTION_FSM_MOCK_H 129