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 OHOS_FILEMGMT_BACKUP_EXT_BACKUP_MOCK_H
17 #define OHOS_FILEMGMT_BACKUP_EXT_BACKUP_MOCK_H
18 
19 #include <gmock/gmock.h>
20 
21 #include "ext_backup.h"
22 
23 namespace OHOS::FileManagement::Backup {
24 class BExtBackup {
25 public:
26     virtual void OnStart(const AAFwk::Want &) = 0;
27     virtual void Init(const std::shared_ptr<AbilityRuntime::AbilityLocalRecord> &,
28               const std::shared_ptr<AbilityRuntime::OHOSApplication> &,
29               std::shared_ptr<AbilityRuntime::AbilityHandler> &,
30               const sptr<IRemoteObject> &) = 0;
31     virtual void OnCommand(const AAFwk::Want &, bool, int) = 0;
32     virtual sptr<IRemoteObject> OnConnect(const AAFwk::Want &) = 0;
33     virtual void OnDisconnect(const AAFwk::Want &) = 0;
34     virtual ExtBackup *Create(const std::unique_ptr<AbilityRuntime::Runtime> &) = 0;
35     virtual BConstants::ExtensionAction GetExtensionAction() = 0;
36     virtual bool AllowToBackupRestore() = 0;
37     virtual bool UseFullBackupOnly(void) = 0;
38     virtual std::string GetUsrConfig() = 0;
39     virtual ErrCode OnBackup(std::function<void(ErrCode, std::string)>) = 0;
40     virtual ErrCode OnBackup(std::function<void(ErrCode, std::string)>,
41         std::function<void(ErrCode, const std::string)>) = 0;
42     virtual ErrCode OnRestore(std::function<void(ErrCode, std::string)>,
43         std::function<void(ErrCode, const std::string)>) = 0;
44     virtual ErrCode OnRestore(std::function<void(ErrCode, std::string)>) = 0;
45     virtual ErrCode GetBackupInfo(std::function<void(ErrCode, std::string)>) = 0;
46     virtual bool WasFromSpecialVersion(void) = 0;
47     virtual bool SpecialVersionForCloneAndCloud(void) = 0;
48     virtual bool RestoreDataReady() = 0;
49     virtual ErrCode InvokeAppExtMethod(ErrCode, const std::string) = 0;
50     virtual void SetCreator(const CreatorFunc &) = 0;
51     virtual BConstants::ExtensionAction VerifyAndGetAction(const AAFwk::Want &,
52         std::shared_ptr<AppExecFwk::AbilityInfo>) = 0;
53     virtual ErrCode GetParament(const AAFwk::Want &) = 0;
54     virtual ErrCode OnProcess(std::function<void(ErrCode, std::string)> callback) = 0;
55 public:
56     virtual std::unique_ptr<NativeReference> LoadSystemModuleByEngine(napi_env, const std::string&, const napi_value*,
57         size_t) = 0;
58     virtual napi_env GetNapiEnv() const = 0;
59 public:
60     virtual napi_value CreateExtBackupJsContext(napi_env, std::shared_ptr<ExtBackupContext>) = 0;
61 public:
62     BExtBackup() = default;
63     virtual ~BExtBackup() = default;
64 public:
65     static inline std::shared_ptr<BExtBackup> extBackup = nullptr;
66 };
67 
68 class ExtBackupMock : public BExtBackup {
69 public:
70     MOCK_METHOD(void, OnStart, (const AAFwk::Want &));
71     MOCK_METHOD(void, Init, (const std::shared_ptr<AbilityRuntime::AbilityLocalRecord> &,
72               const std::shared_ptr<AbilityRuntime::OHOSApplication> &,
73               std::shared_ptr<AbilityRuntime::AbilityHandler> &,
74               const sptr<IRemoteObject> &));
75     MOCK_METHOD(void, OnCommand, (const AAFwk::Want &, bool, int));
76     MOCK_METHOD(sptr<IRemoteObject>, OnConnect, (const AAFwk::Want &));
77     MOCK_METHOD(void, OnDisconnect, (const AAFwk::Want &));
78     MOCK_METHOD(ExtBackup*, Create, (const std::unique_ptr<AbilityRuntime::Runtime> &));
79     MOCK_METHOD(BConstants::ExtensionAction, GetExtensionAction, ());
80     MOCK_METHOD(bool, AllowToBackupRestore, ());
81     MOCK_METHOD(bool, UseFullBackupOnly, ());
82     MOCK_METHOD(std::string, GetUsrConfig, ());
83     MOCK_METHOD(ErrCode, OnBackup, (std::function<void(ErrCode, std::string)>));
84     MOCK_METHOD(ErrCode, OnBackup, (std::function<void(ErrCode, std::string)>,
85         std::function<void(ErrCode, const std::string)>));
86     MOCK_METHOD(ErrCode, OnRestore, (std::function<void(ErrCode, std::string)>,
87         std::function<void(ErrCode, const std::string)>));
88     MOCK_METHOD(ErrCode, OnRestore, (std::function<void(ErrCode, std::string)>));
89     MOCK_METHOD(ErrCode, GetBackupInfo, (std::function<void(ErrCode, std::string)>));
90     MOCK_METHOD(ErrCode, OnProcess, (std::function<void(ErrCode, std::string)>));
91     MOCK_METHOD(bool, WasFromSpecialVersion, ());
92     MOCK_METHOD(bool, SpecialVersionForCloneAndCloud, ());
93     MOCK_METHOD(bool, RestoreDataReady, ());
94     MOCK_METHOD(ErrCode, InvokeAppExtMethod, (ErrCode, const std::string));
95     MOCK_METHOD(void, SetCreator, (const CreatorFunc &));
96     MOCK_METHOD(BConstants::ExtensionAction, VerifyAndGetAction, (const AAFwk::Want &,
97         std::shared_ptr<AppExecFwk::AbilityInfo>));
98     MOCK_METHOD(ErrCode, GetParament, (const AAFwk::Want &));
99     MOCK_METHOD(napi_value, CreateExtBackupJsContext, (napi_env, std::shared_ptr<ExtBackupContext>));
100 public:
101     MOCK_METHOD((std::unique_ptr<NativeReference>), LoadSystemModuleByEngine, (napi_env, const std::string&,
102         const napi_value*, size_t));
103     MOCK_METHOD(napi_env, GetNapiEnv, (), (const));
104 };
105 } // namespace OHOS::FileManagement::Backup
106 #endif // OHOS_FILEMGMT_BACKUP_EXT_BACKUP_H
107