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 FILEMANAGEMENT_APP_FILE_SERVICE_SANDBOX_MOCK_H
17 #define FILEMANAGEMENT_APP_FILE_SERVICE_SANDBOX_MOCK_H
18 #ifdef SANDBOX_MANAGER
19 #include <gmock/gmock.h>
20 
21 #include "sandbox_manager_kit.h"
22 
23 namespace OHOS {
24 namespace AppFileService {
25 using namespace OHOS::AccessControl::SandboxManager;
26 class SandboxManagerKitMock {
27 public:
28     virtual ~SandboxManagerKitMock() = default;
29     virtual int32_t CheckPersistPolicy(uint32_t tokenId,
30                                        const std::vector<PolicyInfo> &policy,
31                                        std::vector<bool> &result) = 0;
32     virtual int32_t PersistPolicy(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result) = 0;
33     virtual int32_t UnPersistPolicy(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result) = 0;
34     virtual int32_t StartAccessingPolicy(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result) = 0;
35     virtual int32_t StopAccessingPolicy(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result) = 0;
36     static inline std::shared_ptr<SandboxManagerKitMock> sandboxManagerKitMock = nullptr;
37 };
38 
39 class SandboxMock : public SandboxManagerKitMock {
40 public:
41     MOCK_METHOD3(CheckPersistPolicy,
42                  int32_t(uint32_t tokenId, const std::vector<PolicyInfo> &policy, std::vector<bool> &result));
43     MOCK_METHOD2(PersistPolicy, int32_t(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result));
44     MOCK_METHOD2(UnPersistPolicy, int32_t(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result));
45     MOCK_METHOD2(StartAccessingPolicy, int32_t(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result));
46     MOCK_METHOD2(StopAccessingPolicy, int32_t(const std::vector<PolicyInfo> &policy, std::vector<uint32_t> &result));
47 };
48 }
49 }
50 #endif
51 #endif
52