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_interface.h" 23 #include "bus_center_event.h" 24 #include "bus_center_manager.h" 25 #include "lnn_ble_lpdevice.h" 26 #include "lnn_cipherkey_manager.h" 27 #include "lnn_connection_addr_utils.h" 28 #include "lnn_device_info_recovery.h" 29 #include "lnn_deviceinfo_to_profile.h" 30 #include "lnn_distributed_net_ledger.h" 31 #include "lnn_feature_capability.h" 32 #include "lnn_heartbeat_ctrl.h" 33 #include "lnn_heartbeat_utils.h" 34 #include "lnn_link_finder.h" 35 #include "softbus_adapter_bt_common.h" 36 37 namespace OHOS { 38 class LnnConnFsmInterface { 39 public: LnnConnFsmInterface()40 LnnConnFsmInterface() {}; ~LnnConnFsmInterface()41 virtual ~LnnConnFsmInterface() {}; 42 virtual void LnnNotifyDeviceVerified(const char *udid) = 0; 43 virtual int SoftBusGetBtState(void) = 0; 44 virtual int32_t LnnGenerateBtMacHash(const char *btMac, int32_t brMacLen, char *brMacHash, int32_t hashLen) = 0; 45 virtual void DeleteFromProfile(const char *udid) = 0; 46 virtual void SendDeviceStateToMlps(void *para) = 0; 47 virtual int32_t LnnUpdateNetworkId(const NodeInfo *newInfo) = 0; 48 virtual int32_t AuthGetServerSide(int64_t authId, bool *isServer) = 0; 49 virtual int32_t LnnRetrieveDeviceInfo(const char *udid, NodeInfo *deviceInfo) = 0; 50 virtual int32_t AuthRestoreAuthManager(const char *udidHash, const AuthConnInfo *connInfo, uint32_t requestId, 51 NodeInfo *nodeInfo, int64_t *authId) = 0; 52 virtual int32_t LnnLoadLocalBroadcastCipherKey(void) = 0; 53 virtual int32_t LnnGetLocalBroadcastCipherKey(BroadcastCipherKey *broadcastKey) = 0; 54 virtual int32_t LnnSetLocalByteInfo(InfoKey key, const uint8_t *info, uint32_t len) = 0; 55 virtual int32_t LnnInsertLinkFinderInfo(const char *networkId) = 0; 56 virtual int32_t LnnUpdateGroupType(const NodeInfo *info) = 0; 57 virtual void LnnNotifySingleOffLineEvent(const ConnectionAddr *addr, NodeBasicInfo *basicInfo) = 0; 58 virtual void LnnStopOfflineTimingByHeartbeat(const char *networkId, ConnectionAddrType addrType) = 0; 59 virtual int32_t LnnGetLocalNodeInfoSafe(NodeInfo *info) = 0; 60 virtual void SetLpKeepAliveState(void *para) = 0; 61 virtual const char *LnnPrintConnectionAddr(const ConnectionAddr *addr) = 0; 62 virtual bool LnnConvertAddrToAuthConnInfo(const ConnectionAddr *addr, AuthConnInfo *connInfo) = 0; 63 virtual DiscoveryType LnnConvAddrTypeToDiscType(ConnectionAddrType type) = 0; 64 virtual void LnnNotifyOOBEStateChangeEvent(SoftBusOOBEState state) = 0; 65 virtual void LnnNotifyHichainProofException( 66 const char *proofInfo, uint32_t proofLen, uint16_t deviceTypeId, int32_t errCode) = 0; 67 }; 68 69 class LnnConnFsmInterfaceMock : public LnnConnFsmInterface { 70 public: 71 LnnConnFsmInterfaceMock(); 72 ~LnnConnFsmInterfaceMock() override; 73 MOCK_METHOD1(LnnNotifyDeviceVerified, void (const char *)); 74 MOCK_METHOD0(SoftBusGetBtState, int (void)); 75 MOCK_METHOD4(LnnGenerateBtMacHash, int32_t (const char *, int32_t, char *, int32_t)); 76 MOCK_METHOD1(DeleteFromProfile, void (const char *)); 77 MOCK_METHOD1(SendDeviceStateToMlps, void (void *)); 78 MOCK_METHOD1(LnnUpdateNetworkId, int32_t (const NodeInfo *)); 79 MOCK_METHOD2(AuthGetServerSide, int32_t (int64_t, bool *)); 80 MOCK_METHOD2(LnnRetrieveDeviceInfo, int32_t (const char *, NodeInfo *)); 81 MOCK_METHOD5(AuthRestoreAuthManager, int32_t (const char *, const AuthConnInfo *, uint32_t, NodeInfo *, 82 int64_t *)); 83 MOCK_METHOD0(LnnLoadLocalBroadcastCipherKey, int32_t (void)); 84 MOCK_METHOD1(LnnGetLocalBroadcastCipherKey, int32_t (BroadcastCipherKey *)); 85 MOCK_METHOD3(LnnSetLocalByteInfo, int32_t (InfoKey, const uint8_t *, uint32_t)); 86 MOCK_METHOD1(LnnInsertLinkFinderInfo, int32_t (const char *)); 87 MOCK_METHOD1(LnnUpdateGroupType, int32_t (const NodeInfo *)); 88 MOCK_METHOD2(LnnNotifySingleOffLineEvent, void (const ConnectionAddr *, NodeBasicInfo *)); 89 MOCK_METHOD2(LnnStopOfflineTimingByHeartbeat, void (const char *, ConnectionAddrType)); 90 MOCK_METHOD1(LnnGetLocalNodeInfoSafe, int32_t (NodeInfo *)); 91 MOCK_METHOD1(SetLpKeepAliveState, void (void *)); 92 MOCK_METHOD1(LnnPrintConnectionAddr, const char * (const ConnectionAddr *)); 93 MOCK_METHOD2(LnnConvertAddrToAuthConnInfo, bool (const ConnectionAddr *, AuthConnInfo *)); 94 MOCK_METHOD1(LnnConvAddrTypeToDiscType, DiscoveryType (ConnectionAddrType)); 95 MOCK_METHOD1(LnnNotifyOOBEStateChangeEvent, void (SoftBusOOBEState)); 96 MOCK_METHOD4(LnnNotifyHichainProofException, void(const char *, uint32_t, uint16_t, int32_t)); 97 }; 98 } // namespace OHOS 99 #endif // LNN_CONNECTION_FSM_MOCK_H 100