1/*
2 * Copyright (C) 2023 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 SECURITY_GUARD_RDB_PREDICATES_MOCK_H
17#define SECURITY_GUARD_RDB_PREDICATES_MOCK_H
18
19#include <cstdint>
20#include <string>
21
22#include <gtest/gtest.h>
23
24namespace OHOS::NativeRdb {
25class AbsPredicates {
26public:
27    AbsPredicates() = default;
28    virtual ~AbsPredicates() = default;
29    virtual AbsPredicates *EqualTo(std::string field, std::string value) {return nullptr;};
30    virtual AbsPredicates *EqualTo(std::string field, int value) {return nullptr;};
31    virtual AbsPredicates *NotEqualTo(std::string field, std::string value) {return nullptr;};
32    virtual AbsPredicates *BeginWrap() {return nullptr;};
33    virtual AbsPredicates *EndWrap() {return nullptr;};
34    virtual AbsPredicates *Or() {return nullptr;};
35    virtual AbsPredicates *And() {return nullptr;};
36    virtual AbsPredicates *Contains(std::string field, std::string value) {return nullptr;};
37    virtual AbsPredicates *BeginsWith(std::string field, std::string value) {return nullptr;};
38    virtual AbsPredicates *EndsWith(std::string field, std::string value) {return nullptr;};
39    virtual AbsPredicates *IsNull(std::string field) {return nullptr;};
40    virtual AbsPredicates *IsNotNull(std::string field) {return nullptr;};
41    virtual AbsPredicates *Like(std::string field, std::string value) {return nullptr;};
42    virtual AbsPredicates *Glob(std::string field, std::string value) {return nullptr;};
43    virtual AbsPredicates *Between(std::string field, std::string low, std::string high) {return nullptr;};
44    virtual AbsPredicates *NotBetween(std::string field, std::string low, std::string high) {return nullptr;};
45    virtual AbsPredicates *GreaterThan(std::string field, std::string value) {return nullptr;};
46    virtual AbsPredicates *LessThan(std::string field, std::string value) {return nullptr;};
47    virtual AbsPredicates *GreaterThanOrEqualTo(std::string field, std::string value) {return nullptr;};
48    virtual AbsPredicates *LessThanOrEqualTo(std::string field, std::string value) {return nullptr;};
49    virtual AbsPredicates *OrderByAsc(std::string field) {return nullptr;};
50    virtual AbsPredicates *OrderByDesc(std::string field) {return nullptr;};
51    virtual AbsPredicates *Distinct() {return nullptr;};
52    virtual AbsPredicates *Limit(int value) {return nullptr;};
53    virtual AbsPredicates *Offset(int rowOffset) {return nullptr;};
54    virtual AbsPredicates *GroupBy(std::vector<std::string> fields) {return nullptr;};
55    virtual AbsPredicates *IndexedBy(std::string indexName) {return nullptr;};
56    virtual AbsPredicates *In(std::string field, std::vector<std::string> values) {return nullptr;};
57    virtual AbsPredicates *NotIn(std::string field, std::vector<std::string> values) {return nullptr;};
58};
59
60class AbsRdbPredicates : public AbsPredicates {
61public:
62    AbsRdbPredicates(std::string string) : AbsPredicates() {};
63    ~AbsRdbPredicates() override {};
64};
65
66class RdbPredicates : public AbsRdbPredicates {
67public:
68    explicit RdbPredicates(std::string string) : AbsRdbPredicates(string){};
69    ~RdbPredicates() override {};
70    virtual AbsPredicates *NotEqualTo(std::string field, std::string value) {return nullptr;};
71    virtual AbsPredicates *BeginWrap() {return nullptr;};
72    virtual AbsPredicates *EndWrap() {return nullptr;};
73    virtual AbsPredicates *Or() {return nullptr;};
74    virtual AbsPredicates *And() {return nullptr;};
75    virtual AbsPredicates *Contains(std::string field, std::string value) {return nullptr;};
76    virtual AbsPredicates *BeginsWith(std::string field, std::string value) {return nullptr;};
77    virtual AbsPredicates *EndsWith(std::string field, std::string value) {return nullptr;};
78    virtual AbsPredicates *IsNull(std::string field) {return nullptr;};
79    virtual AbsPredicates *IsNotNull(std::string field) {return nullptr;};
80    virtual AbsPredicates *Like(std::string field, std::string value) {return nullptr;};
81    virtual AbsPredicates *Glob(std::string field, std::string value) {return nullptr;};
82    virtual AbsPredicates *Between(std::string field, std::string low, std::string high) {return nullptr;};
83    virtual AbsPredicates *NotBetween(std::string field, std::string low, std::string high) {return nullptr;};
84    virtual AbsPredicates *GreaterThan(std::string field, std::string value) {return nullptr;};
85    virtual AbsPredicates *LessThan(std::string field, std::string value) {return nullptr;};
86    virtual AbsPredicates *GreaterThanOrEqualTo(std::string field, std::string value) {return nullptr;};
87    virtual AbsPredicates *LessThanOrEqualTo(std::string field, std::string value) {return nullptr;};
88    virtual AbsPredicates *OrderByAsc(std::string field) {return nullptr;};
89    virtual AbsPredicates *OrderByDesc(std::string field) {return nullptr;};
90    virtual AbsPredicates *Distinct() {return nullptr;};
91    virtual AbsPredicates *Limit(int value) {return nullptr;};
92    virtual AbsPredicates *Offset(int rowOffset) {return nullptr;};
93    virtual AbsPredicates *GroupBy(std::vector<std::string> fields) {return nullptr;};
94    virtual AbsPredicates *IndexedBy(std::string indexName) {return nullptr;};
95    virtual AbsPredicates *In(std::string field, std::vector<std::string> values) {return nullptr;};
96    virtual AbsPredicates *NotIn(std::string field, std::vector<std::string> values) {return nullptr;};
97};
98} // namespace OHOS::NativeRdb
99#endif // SECURITY_GUARD_RDB_PREDICATES_MOCK_H