• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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_DECISION_DB_DEPS_MOCK_H
17 #define LNN_DECISION_DB_DEPS_MOCK_H
18 
19 #include <gmock/gmock.h>
20 #include <securec.h>
21 
22 #include "auth_interface.h"
23 #include "bus_center_event.h"
24 #include "bus_center_manager.h"
25 #include "bus_center_info_key.h"
26 #include "lnn_async_callback_utils.h"
27 #include "lnn_file_utils.h"
28 #include "lnn_heartbeat_medium_mgr.h"
29 #include "lnn_heartbeat_utils.h"
30 #include "lnn_huks_utils.h"
31 #include "lnn_node_info.h"
32 #include "lnn_secure_storage_struct.h"
33 #include "sqlite3_utils.h"
34 
35 #include "softbus_adapter_file.h"
36 #include "softbus_common.h"
37 #include "softbus_error_code.h"
38 #include "softbus_utils.h"
39 
40 namespace OHOS {
41 class DecisionDbDepsInterface {
42 public:
DecisionDbDepsInterface()43     DecisionDbDepsInterface() {};
~DecisionDbDepsInterface()44     virtual ~DecisionDbDepsInterface() {};
45 
46     virtual int32_t LnnGenerateKeyByHuks(struct HksBlob *keyAlias);
47     virtual int32_t LnnDeleteKeyByHuks(struct HksBlob *keyAlias);
48     virtual int32_t LnnEncryptDataByHuks(
49         const struct HksBlob *keyAlias, const struct HksBlob *inData, struct HksBlob *outData);
50     virtual int32_t LnnDecryptDataByHuks(
51         const struct HksBlob *keyAlias, const struct HksBlob *inData, struct HksBlob *outData);
52     virtual int32_t LnnGenerateRandomByHuks(uint8_t *randomKey, uint32_t len);
53     virtual int32_t OpenDatabase(DbContext **ctx);
54     virtual int32_t CloseDatabase(DbContext *ctx);
55     virtual int32_t CreateTable(DbContext *ctx, TableNameID id);
56     virtual int32_t CheckTableExist(DbContext *ctx, TableNameID id, bool *isExist);
57     virtual int32_t RemoveRecordByKey(DbContext *ctx, TableNameID id, uint8_t *data);
58     virtual int32_t GetRecordNumByKey(DbContext *ctx, TableNameID id, uint8_t *data);
59     virtual int32_t EncryptedDb(DbContext *ctx, const uint8_t *password, uint32_t len);
60     virtual int32_t UpdateDbPassword(DbContext *ctx, const uint8_t *password, uint32_t len);
61     virtual int32_t QueryRecordByKey(
62         DbContext *ctx, TableNameID id, uint8_t *data, uint8_t **replyInfo, int32_t infoNum);
63     virtual int32_t LnnGetFullStoragePath(LnnFileId id, char *path, uint32_t len);
64     virtual int32_t SoftBusReadFullFile(const char *fileName, char *readBuf, uint32_t maxLen);
65     virtual int32_t SoftBusWriteFile(const char *fileName, const char *writeBuf, uint32_t len);
66     virtual int32_t SoftBusAccessFile(const char *pathName, int32_t mode);
67     virtual int32_t LnnAsyncCallbackHelper(SoftBusLooper *looper, LnnAsyncCallbackFunc callback, void *para);
68     virtual int32_t LnnGetLocalByteInfo(InfoKey key, uint8_t *info, uint32_t len);
69     virtual int32_t ConvertBytesToHexString(
70         char *outBuf, uint32_t outBufLen, const unsigned char *inBuf, uint32_t inLen);
71     virtual void LnnNotifyNetworkStateChanged(SoftBusNetworkState state) = 0;
72     virtual TrustedReturnType AuthHasTrustedRelation(void) = 0;
73     virtual bool IsEnableSoftBusHeartbeat(void) = 0;
74     virtual void LnnNotifyHBRepeat(void) = 0;
75     virtual void LnnHbClearRecvList(void) = 0;
76     virtual int32_t LnnConvertHbTypeToId(LnnHeartbeatType type) = 0;
77     virtual bool LnnVisitHbTypeSet(VisitHbTypeCb callback, LnnHeartbeatType *typeSet, void *data) = 0;
78     virtual int32_t LnnCeEncryptDataByHuks(
79         const struct HksBlob *keyAlias, const struct HksBlob *inData, struct HksBlob *outData);
80     virtual int32_t LnnCeDecryptDataByHuks(
81         const struct HksBlob *keyAlias, const struct HksBlob *inData, struct HksBlob *outData);
82     virtual int64_t SoftBusGetRealTimeMs(void) = 0;
83     virtual int32_t LnnGetLocalNum64Info(InfoKey key, int64_t *info) = 0;
84     virtual int32_t LnnSetLocalNum64Info(InfoKey key, int64_t info) = 0;
85     virtual int32_t LnnAsyncCallbackDelayHelper(
86         SoftBusLooper *looper, LnnAsyncCallbackFunc callback, void *para, uint64_t delayMillis) = 0;
87     virtual SoftBusLooper *GetLooper(int32_t looper) = 0;
88     virtual int32_t LnnSaveDeviceData(const char *data, LnnDataType dataType) = 0;
89     virtual int32_t LnnRetrieveDeviceData(LnnDataType dataType, char **data, uint32_t *dataLen) = 0;
90     virtual int32_t LnnGetLocalDevInfo(NodeInfo *deviceInfo) = 0;
91     virtual int32_t LnnGetAllRemoteDevInfo(NodeInfo **info, int32_t *nums) = 0;
92     virtual int32_t LnnSaveLocalDeviceInfo(const NodeInfo *deviceInfo) = 0;
93     virtual int32_t LnnSaveRemoteDeviceInfo(const NodeInfo *deviceInfo) = 0;
94     virtual int32_t LnnDeleteCeKeyByHuks(struct HksBlob *keyAlias) = 0;
95     virtual int32_t LnnGenerateCeKeyByHuks(struct HksBlob *keyAlias, bool isUnlocked) = 0;
96     virtual int32_t LnnGetLocalNumInfo(InfoKey key, int32_t *info);
97 };
98 class DecisionDbDepsInterfaceMock : public DecisionDbDepsInterface {
99 public:
100     DecisionDbDepsInterfaceMock();
101     ~DecisionDbDepsInterfaceMock() override;
102     MOCK_METHOD1(LnnGenerateKeyByHuks, int32_t(struct HksBlob *));
103     MOCK_METHOD1(LnnDeleteKeyByHuks, int32_t(struct HksBlob *));
104     MOCK_METHOD3(LnnEncryptDataByHuks, int32_t(const struct HksBlob *, const struct HksBlob *, struct HksBlob *));
105     MOCK_METHOD3(LnnDecryptDataByHuks, int32_t(const struct HksBlob *, const struct HksBlob *, struct HksBlob *));
106     MOCK_METHOD2(LnnGenerateRandomByHuks, int32_t(uint8_t *, uint32_t));
107     MOCK_METHOD1(OpenDatabase, int32_t(DbContext **));
108     MOCK_METHOD1(CloseDatabase, int32_t(DbContext *));
109     MOCK_METHOD2(CreateTable, int32_t(DbContext *, TableNameID));
110     MOCK_METHOD3(CheckTableExist, int32_t(DbContext *, TableNameID, bool *));
111     MOCK_METHOD3(RemoveRecordByKey, int32_t(DbContext *, TableNameID, uint8_t *));
112     MOCK_METHOD3(GetRecordNumByKey, int32_t(DbContext *, TableNameID, uint8_t *));
113     MOCK_METHOD3(EncryptedDb, int32_t(DbContext *, const uint8_t *, uint32_t));
114     MOCK_METHOD3(UpdateDbPassword, int32_t(DbContext *, const uint8_t *, uint32_t));
115     MOCK_METHOD5(QueryRecordByKey, int32_t(DbContext *, TableNameID, uint8_t *, uint8_t **, int));
116     MOCK_METHOD3(LnnGetFullStoragePath, int32_t(LnnFileId, char *, uint32_t));
117     MOCK_METHOD3(SoftBusReadFullFile, int32_t(const char *, char *, uint32_t));
118     MOCK_METHOD3(SoftBusWriteFile, int32_t(const char *, const char *, uint32_t));
119     MOCK_METHOD2(SoftBusAccessFile, int32_t(const char *, int32_t));
120     MOCK_METHOD3(LnnAsyncCallbackHelper, int32_t(SoftBusLooper *, LnnAsyncCallbackFunc, void *));
121     MOCK_METHOD3(LnnGetLocalByteInfo, int32_t(InfoKey, uint8_t *, uint32_t));
122     MOCK_METHOD4(ConvertBytesToHexString, int32_t(char *, uint32_t, const unsigned char *, uint32_t));
123     MOCK_METHOD1(LnnNotifyNetworkStateChanged, void(SoftBusNetworkState));
124     MOCK_METHOD0(AuthHasTrustedRelation, TrustedReturnType(void));
125     MOCK_METHOD0(IsEnableSoftBusHeartbeat, bool(void));
126     MOCK_METHOD0(LnnNotifyHBRepeat, void(void));
127     MOCK_METHOD0(LnnHbClearRecvList, void(void));
128     MOCK_METHOD3(LnnVisitHbTypeSet, bool(VisitHbTypeCb, LnnHeartbeatType *, void *));
129     MOCK_METHOD1(LnnConvertHbTypeToId, int32_t(LnnHeartbeatType));
130     static int32_t DecisionDbAsyncCallbackHelper(SoftBusLooper *looper, LnnAsyncCallbackFunc callback, void *para);
131     MOCK_METHOD3(LnnCeEncryptDataByHuks, int32_t(const struct HksBlob *, const struct HksBlob *, struct HksBlob *));
132     MOCK_METHOD3(LnnCeDecryptDataByHuks, int32_t(const struct HksBlob *, const struct HksBlob *, struct HksBlob *));
133     MOCK_METHOD0(SoftBusGetRealTimeMs, int64_t(void));
134     MOCK_METHOD2(LnnGetLocalNum64Info, int32_t(InfoKey key, int64_t *));
135     MOCK_METHOD2(LnnSetLocalNum64Info, int32_t(InfoKey, int64_t));
136     MOCK_METHOD4(LnnAsyncCallbackDelayHelper, int32_t(SoftBusLooper *, LnnAsyncCallbackFunc, void *, uint64_t));
137     MOCK_METHOD1(GetLooper, SoftBusLooper * (int));
138     MOCK_METHOD2(LnnSaveDeviceData, int32_t(const char *, LnnDataType));
139     MOCK_METHOD3(LnnRetrieveDeviceData, int32_t(LnnDataType, char **, uint32_t *));
140     MOCK_METHOD1(LnnGetLocalDevInfo, int32_t(NodeInfo *));
141     MOCK_METHOD2(LnnGetAllRemoteDevInfo, int32_t(NodeInfo **, int32_t *));
142     MOCK_METHOD1(LnnSaveLocalDeviceInfo, int32_t(const NodeInfo *));
143     MOCK_METHOD1(LnnSaveRemoteDeviceInfo, int32_t(const NodeInfo *));
144     MOCK_METHOD1(LnnDeleteCeKeyByHuks, int32_t(struct HksBlob *));
145     MOCK_METHOD2(LnnGenerateCeKeyByHuks, int32_t(struct HksBlob *, bool));
146     MOCK_METHOD2(LnnGetLocalNumInfo, int32_t(InfoKey key, int32_t *info));
147 };
148 } // namespace OHOS
149 #endif // LNN_DECISION_DB_DEPS_MOCK_H
150