• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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