• 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 "bus_center_manager.h"
23 #include "lnn_async_callback_utils.h"
24 #include "lnn_file_utils.h"
25 #include "lnn_huks_utils.h"
26 #include "sqlite3_utils.h"
27 
28 #include "softbus_adapter_file.h"
29 #include "softbus_common.h"
30 #include "softbus_errcode.h"
31 #include "softbus_log.h"
32 #include "softbus_utils.h"
33 
34 namespace OHOS {
35 class DecisionDbDepsInterface {
36 public:
DecisionDbDepsInterface()37     DecisionDbDepsInterface() {};
~DecisionDbDepsInterface()38     virtual ~DecisionDbDepsInterface() {};
39 
40     virtual int32_t LnnGenerateKeyByHuks(struct HksBlob *keyAlias);
41     virtual int32_t LnnDeleteKeyByHuks(struct HksBlob *keyAlias);
42     virtual int32_t LnnEncryptDataByHuks(const struct HksBlob *keyAlias,
43         const struct HksBlob *inData, struct HksBlob *outData);
44     virtual int32_t LnnDecryptDataByHuks(const struct HksBlob *keyAlias,
45         const struct HksBlob *inData, struct HksBlob *outData);
46     virtual int32_t LnnGenerateRandomByHuks(uint8_t *randomKey, uint32_t len);
47     virtual int32_t OpenDatabase(DbContext **ctx);
48     virtual int32_t CloseDatabase(DbContext *ctx);
49     virtual int32_t CreateTable(DbContext *ctx, TableNameID id);
50     virtual int32_t CheckTableExist(DbContext *ctx, TableNameID id, bool *isExist);
51     virtual int32_t RemoveRecordByKey(DbContext *ctx, TableNameID id, uint8_t *data);
52     virtual int32_t GetRecordNumByKey(DbContext *ctx, TableNameID id, uint8_t *data);
53     virtual int32_t EncryptedDb(DbContext *ctx, const uint8_t *password, uint32_t len);
54     virtual int32_t UpdateDbPassword(DbContext *ctx, const uint8_t *password, uint32_t len);
55     virtual int32_t QueryRecordByKey(DbContext *ctx, TableNameID id, uint8_t *data, uint8_t **replyInfo, int infoNum);
56     virtual int32_t LnnGetFullStoragePath(LnnFileId id, char *path, uint32_t len);
57     virtual int32_t SoftBusReadFullFile(const char *fileName, char *readBuf, uint32_t maxLen);
58     virtual int32_t SoftBusWriteFile(const char *fileName, const char *writeBuf, uint32_t len);
59     virtual int32_t SoftBusAccessFile(const char *pathName, int32_t mode);
60     virtual int32_t LnnAsyncCallbackHelper(SoftBusLooper *looper, LnnAsyncCallbackFunc callback, void *para);
61     virtual int32_t LnnGetLocalByteInfo(InfoKey key, uint8_t *info, uint32_t len);
62     virtual int32_t ConvertBytesToHexString(char *outBuf, uint32_t outBufLen,
63         const unsigned char *inBuf, uint32_t inLen);
64 };
65 class DecisionDbDepsInterfaceMock : public DecisionDbDepsInterface {
66 public:
67     DecisionDbDepsInterfaceMock();
68     ~DecisionDbDepsInterfaceMock() override;
69     MOCK_METHOD1(LnnGenerateKeyByHuks, int32_t (struct HksBlob *));
70     MOCK_METHOD1(LnnDeleteKeyByHuks, int32_t (struct HksBlob *));
71     MOCK_METHOD3(LnnEncryptDataByHuks, int32_t (const struct HksBlob *, const struct HksBlob *, struct HksBlob *));
72     MOCK_METHOD3(LnnDecryptDataByHuks, int32_t (const struct HksBlob *, const struct HksBlob *, struct HksBlob *));
73     MOCK_METHOD2(LnnGenerateRandomByHuks, int32_t (uint8_t *, uint32_t));
74     MOCK_METHOD1(OpenDatabase, int32_t (DbContext **));
75     MOCK_METHOD1(CloseDatabase, int32_t (DbContext *));
76     MOCK_METHOD2(CreateTable, int32_t (DbContext *, TableNameID));
77     MOCK_METHOD3(CheckTableExist, int32_t (DbContext *, TableNameID, bool *));
78     MOCK_METHOD3(RemoveRecordByKey, int32_t (DbContext *, TableNameID, uint8_t *));
79     MOCK_METHOD3(GetRecordNumByKey, int32_t (DbContext *, TableNameID, uint8_t *));
80     MOCK_METHOD3(EncryptedDb, int32_t (DbContext *, const uint8_t *, uint32_t));
81     MOCK_METHOD3(UpdateDbPassword, int32_t (DbContext *, const uint8_t *, uint32_t));
82     MOCK_METHOD5(QueryRecordByKey, int32_t (DbContext *, TableNameID, uint8_t *, uint8_t **, int));
83     MOCK_METHOD3(LnnGetFullStoragePath, int32_t (LnnFileId, char *, uint32_t));
84     MOCK_METHOD3(SoftBusReadFullFile, int32_t (const char *, char *, uint32_t));
85     MOCK_METHOD3(SoftBusWriteFile, int32_t (const char *, const char *, uint32_t));
86     MOCK_METHOD2(SoftBusAccessFile, int32_t (const char *, int32_t));
87     MOCK_METHOD3(LnnAsyncCallbackHelper, int32_t (SoftBusLooper *, LnnAsyncCallbackFunc, void *));
88     MOCK_METHOD3(LnnGetLocalByteInfo, int32_t (InfoKey, uint8_t *, uint32_t));
89     MOCK_METHOD4(ConvertBytesToHexString, int32_t (char *, uint32_t, const unsigned char *, uint32_t));
90 
91     static int32_t DecisionDbAsyncCallbackHelper(SoftBusLooper *looper, LnnAsyncCallbackFunc callback, void *para);
92 };
93 } // namespace OHOS
94 #endif // LNN_DECISION_DB_DEPS_MOCK_H
95