• 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_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