1 /*
2  * Copyright (c) 2021-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 MOCK_OHOS_ABILITY_RUNTIME_MOCK_DATA_ABILITY_H
17 #define MOCK_OHOS_ABILITY_RUNTIME_MOCK_DATA_ABILITY_H
18 
19 #include "ability.h"
20 #include <gtest/gtest.h>
21 
22 #include "abs_shared_result_set.h"
23 #include "data_ability_predicates.h"
24 #include "values_bucket.h"
25 
26 namespace OHOS {
27 namespace AppExecFwk {
28 using Want = OHOS::AAFwk::Want;
29 
30 class MockDataAbility : public Ability {
31 public:
32     MockDataAbility() = default;
33     virtual ~MockDataAbility() = default;
34 
35     enum Event { ON_ACTIVE = 0, ON_BACKGROUND, ON_FOREGROUND, ON_INACTIVE, ON_START, ON_STOP, UNDEFINED };
36 
OpenFile(const Uri & uri,const std::string & mode)37     virtual int OpenFile(const Uri& uri, const std::string& mode)
38     {
39         GTEST_LOG_(INFO) << "MockDataAbility::OpenFile called";
40 
41         return 1;
42     }
43 
Insert(const Uri & uri,const NativeRdb::ValuesBucket & value)44     virtual int Insert(const Uri& uri, const NativeRdb::ValuesBucket& value)
45     {
46         GTEST_LOG_(INFO) << "MockDataAbility::Insert called";
47 
48         return 1;
49     }
50 
Update(const Uri & uri,const NativeRdb::ValuesBucket & value,const NativeRdb::DataAbilityPredicates & predicates)51     virtual int Update(const Uri& uri, const NativeRdb::ValuesBucket& value,
52         const NativeRdb::DataAbilityPredicates& predicates)
53     {
54         GTEST_LOG_(INFO) << "MockDataAbility::Update called";
55 
56         return 1;
57     }
58 
Delete(const Uri & uri,const NativeRdb::DataAbilityPredicates & predicates)59     virtual int Delete(const Uri& uri, const NativeRdb::DataAbilityPredicates& predicates)
60     {
61         GTEST_LOG_(INFO) << "MockDataAbility::Delete called";
62 
63         return 1;
64     }
65 
OpenRawFile(const Uri & uri,const std::string & mode)66     virtual int OpenRawFile(const Uri& uri, const std::string& mode)
67     {
68         GTEST_LOG_(INFO) << "MockDataAbility::OpenRawFile called";
69 
70         return 1;
71     }
72 
Reload(const Uri & uri,const PacMap & extras)73     virtual bool Reload(const Uri& uri, const PacMap& extras)
74     {
75         GTEST_LOG_(INFO) << "MockDataAbility::Reload called";
76 
77         return 1;
78     }
79 
BatchInsert(const Uri & uri,const std::vector<NativeRdb::ValuesBucket> & values)80     virtual int BatchInsert(const Uri& uri, const std::vector<NativeRdb::ValuesBucket>& values)
81     {
82         GTEST_LOG_(INFO) << "MockDataAbility::BatchInsert called";
83 
84         return 1;
85     }
86 
Query(const Uri & uri,const std::vector<std::string> & columns,const NativeRdb::DataAbilityPredicates & predicates)87     virtual std::shared_ptr<NativeRdb::AbsSharedResultSet> Query(
88         const Uri& uri, const std::vector<std::string>& columns, const NativeRdb::DataAbilityPredicates& predicates)
89     {
90         GTEST_LOG_(INFO) << "MockDataAbility::Query called";
91         std::shared_ptr<NativeRdb::AbsSharedResultSet> set = std::make_shared<NativeRdb::AbsSharedResultSet>(
92             "QueryTest");
93         return set;
94     }
95 
GetFileTypes(const Uri & uri,const std::string & mimeTypeFilter)96     virtual std::vector<std::string> GetFileTypes(const Uri& uri, const std::string& mimeTypeFilter)
97     {
98         GTEST_LOG_(INFO) << "MockDataAbility::GetFileTypes called";
99         value.push_back(mimeTypeFilter);
100         return value;
101     }
102 
GetType(const Uri & uri)103     virtual std::string GetType(const Uri& uri)
104     {
105         GTEST_LOG_(INFO) << "MockDataAbility::GetType called";
106         std::string value("Type1");
107         return value;
108     }
109 
Call(const Uri & uri,const std::string & method,const std::string & arg,const AppExecFwk::PacMap & pacMap)110     virtual std::shared_ptr<AppExecFwk::PacMap> Call(
111         const Uri &uri, const std::string &method, const std::string &arg, const AppExecFwk::PacMap &pacMap)
112     {
113         GTEST_LOG_(INFO) << "MockDataAbility::Call called";
114         std::shared_ptr<AppExecFwk::PacMap> set = std::make_shared<AppExecFwk::PacMap>();
115         return set;
116     }
117 
NormalizeUri(const Uri & uri)118     virtual Uri NormalizeUri(const Uri &uri)
119     {
120         GTEST_LOG_(INFO) << "MockDataAbility::NormalizeUri called";
121         Uri urivalue("UriTest");
122         return urivalue;
123     }
124 
DenormalizeUri(const Uri & uri)125     virtual Uri DenormalizeUri(const Uri &uri)
126     {
127         GTEST_LOG_(INFO) << "MockDataAbility::DenormalizeUri called";
128         Uri urivalue("UriTest");
129         return urivalue;
130     }
131 
ExecuteBatch(const std::vector<std::shared_ptr<DataAbilityOperation>> & operations)132     virtual std::vector<std::shared_ptr<DataAbilityResult>> ExecuteBatch(
133         const std::vector<std::shared_ptr<DataAbilityOperation>> &operations)
134     {
135         GTEST_LOG_(INFO) << "MockDataAbility::ExecuteBatch called";
136         std::vector<std::shared_ptr<DataAbilityResult>> results;
137         return results;
138     }
139 
140     int datatest = 0;
141     MockDataAbility::Event state_ = UNDEFINED;
142     std::vector<std::string> value;
143 };
144 }  // namespace AppExecFwk
145 }  // namespace OHOS
146 #endif  // MOCK_OHOS_ABILITY_RUNTIME_MOCK_DATA_ABILITY_H
147