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