1 /*
2  * Copyright (c) 2023 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_LINK_DEPS_MOCK_H
17 #define LNN_LANE_LINK_DEPS_MOCK_H
18 
19 #include <gmock/gmock.h>
20 
21 #include "lnn_lane_link.h"
22 #include "lnn_lane_link_conflict.h"
23 #include "softbus_proxychannel_pipeline.h"
24 
25 namespace OHOS {
26 class LaneLinkDepsInterface {
27 public:
LaneLinkDepsInterface()28     LaneLinkDepsInterface() {};
~LaneLinkDepsInterface()29     virtual ~LaneLinkDepsInterface() {};
30 
31     virtual int32_t GetTransReqInfoByLaneReqId(uint32_t laneReqId, TransOption *reqInfo) = 0;
32     virtual int32_t TransProxyPipelineGenRequestId(void) = 0;
33     virtual int32_t TransProxyPipelineOpenChannel(int32_t requestId, const char *networkId,
34         const TransProxyPipelineChannelOption *option, const ITransProxyPipelineCallback *callback) = 0;
35     virtual int32_t TransProxyPipelineCloseChannel(int32_t channelId) = 0;
36     virtual int32_t TransProxyPipelineCloseChannelDelay(int32_t channelId) = 0;
37     virtual int32_t FindLaneResourceByLinkType(const char *peerUdid, LaneLinkType type, LaneResource *resource) = 0;
38     virtual int32_t LaneDetectReliability(uint32_t laneReqId, const LaneLinkInfo *linkInfo,
39         const LaneLinkCb *callback) = 0;
40     virtual int32_t FindLaneResourceByLaneId(uint64_t laneId, LaneResource *resource) = 0;
41     virtual int32_t InitLaneLink(void) = 0;
42     virtual int32_t AddLaneResourceToPool(const LaneLinkInfo *linkInfo, uint64_t laneId, bool isServerSide) = 0;
43     virtual int32_t DelLaneResourceByLaneId(uint64_t laneId, bool isServerSide) = 0;
44     virtual void NotifyFreeLaneResult(uint32_t laneReqId, int32_t errCode) = 0;
45     virtual LinkConflictType GetConflictTypeWithErrcode(int32_t conflictErrcode) = 0;
46     virtual int32_t FindLinkConflictInfoByDevId(const DevIdentifyInfo *inputInfo, LinkConflictType conflictType,
47         LinkConflictInfo *outputInfo) = 0;
48     virtual void RemoveConflictInfoTimelinessMsg(const DevIdentifyInfo *inputInfo, LinkConflictType conflictType) = 0;
49     virtual int32_t DelLinkConflictInfo(const DevIdentifyInfo *inputInfo, LinkConflictType conflictType) = 0;
50     virtual int32_t ClearLaneResourceByLaneId(uint64_t laneId) = 0;
51     virtual void RemoveDelayDestroyMessage(uint64_t laneId) = 0;
52     virtual void DelLogicAndLaneRelationship(uint64_t laneId) = 0;
53     virtual int32_t CheckLinkConflictByReleaseLink(LaneLinkType releaseLink) = 0;
54 };
55 
56 class LaneLinkDepsInterfaceMock : public LaneLinkDepsInterface {
57 public:
58     LaneLinkDepsInterfaceMock();
59     ~LaneLinkDepsInterfaceMock() override;
60 
61     MOCK_METHOD2(GetTransReqInfoByLaneReqId, int32_t (uint32_t laneReqId, TransOption *reqInfo));
62     MOCK_METHOD0(TransProxyPipelineGenRequestId, int32_t (void));
63     MOCK_METHOD4(TransProxyPipelineOpenChannel, int32_t (int32_t requestId, const char *networkId,
64         const TransProxyPipelineChannelOption *option, const ITransProxyPipelineCallback *callback));
65     MOCK_METHOD1(TransProxyPipelineCloseChannel, int32_t (int32_t channelId));
66     MOCK_METHOD1(TransProxyPipelineCloseChannelDelay, int32_t (int32_t channelId));
67     MOCK_METHOD3(FindLaneResourceByLinkType, int32_t (const char *peerUdid, LaneLinkType type,
68         LaneResource *resource));
69     MOCK_METHOD3(LaneDetectReliability, int32_t (uint32_t laneReqId, const LaneLinkInfo *linkInfo,
70         const LaneLinkCb *callback));
71     MOCK_METHOD2(FindLaneResourceByLaneId, int32_t (uint64_t laneId, LaneResource *resource));
72     MOCK_METHOD0(InitLaneLink, int32_t (void));
73     MOCK_METHOD3(AddLaneResourceToPool, int32_t (const LaneLinkInfo *linkInfo, uint64_t laneId, bool isServerSide));
74     MOCK_METHOD2(DelLaneResourceByLaneId, int32_t (uint64_t laneId, bool isServerSide));
75     MOCK_METHOD2(NotifyFreeLaneResult, void (uint32_t laneReqId, int32_t errCode));
76     MOCK_METHOD1(GetConflictTypeWithErrcode, LinkConflictType (int32_t conflictErrcode));
77     MOCK_METHOD3(FindLinkConflictInfoByDevId, int32_t (const DevIdentifyInfo *inputInfo,
78         LinkConflictType conflictType, LinkConflictInfo *outputInfo));
79     MOCK_METHOD2(RemoveConflictInfoTimelinessMsg, void (const DevIdentifyInfo *inputInfo,
80         LinkConflictType conflictType));
81     MOCK_METHOD2(DelLinkConflictInfo, int32_t (const DevIdentifyInfo *inputInfo, LinkConflictType conflictType));
82     MOCK_METHOD1(ClearLaneResourceByLaneId, int32_t (uint64_t laneId));
83     MOCK_METHOD1(RemoveDelayDestroyMessage, void (uint64_t laneId));
84     MOCK_METHOD1(DelLogicAndLaneRelationship, void (uint64_t laneId));
85     MOCK_METHOD1(CheckLinkConflictByReleaseLink, int32_t (LaneLinkType releaseLink));
86 
87     static int32_t ActionOfChannelOpenFailed(int32_t requestId, const char *networkId,
88         const TransProxyPipelineChannelOption *option, const ITransProxyPipelineCallback *callback);
89     static int32_t ActionOfChannelOpened(int32_t requestId, const char *networkId,
90         const TransProxyPipelineChannelOption *option, const ITransProxyPipelineCallback *callback);
91     static int32_t ActionOfDetectSuccess(uint32_t laneReqId, const LaneLinkInfo *linkInfo,
92         const LaneLinkCb *callback);
93 };
94 } // namespace OHOS
95 #endif // LNN_LANE_LINK_DEPS_MOCK_H
96