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 CONTACTPROFILE_TEST_H
17 #define CONTACTPROFILE_TEST_H
18 
19 #include "base_test.h"
20 
21 namespace Contacts {
22 namespace Test {
23 class ContactProfileTest : public BaseTest {
24 public:
25     static constexpr int SLEEP_TIME = 2;
26 
27     ContactProfileTest();
28     ~ContactProfileTest();
29     int64_t RawContactInsert(std::string displayName, OHOS::DataShare::DataShareValuesBucket &alues);
30     int64_t RawContactExpandInsert(
31         std::vector<std::string> valueVector, int isFavorite, OHOS::DataShare::DataShareValuesBucket &rawContactValues);
32     int64_t RawContactLastContactedInsert(
33         std::string displayName, int lastestContactedTime, OHOS::DataShare::DataShareValuesBucket &rawContactValues);
34     int64_t ContactDataInsert(int64_t rawContactId, std::string contentType, std::string detailInfo,
35         std::string position, OHOS::DataShare::DataShareValuesBucket &contactDataValues);
36     int64_t GroupsInsert(std::string groupName, OHOS::DataShare::DataShareValuesBucket &groupValues);
37     int64_t ContactBlocklistInsert(std::string phoneNumber, OHOS::DataShare::DataShareValuesBucket &rawContactValues);
38     int ContactUpdate(const std::string &tableName, OHOS::DataShare::DataShareValuesBucket updateValues,
39         OHOS::DataShare::DataSharePredicates predicates);
40     int ContactDelete(const std::string &tableName, OHOS::DataShare::DataSharePredicates predicates);
41     std::shared_ptr<OHOS::DataShare::DataShareResultSet> ContactQuery(const std::string &tableName,
42         std::vector<std::string> &columns, OHOS::DataShare::DataSharePredicates predicates);
43     void QueryAndExpectResult(std::string &tableName, OHOS::DataShare::DataSharePredicates predicates,
44         OHOS::DataShare::DataShareValuesBucket &values, std::string testName);
45     OHOS::DataShare::DataShareValuesBucket GetAllColumnsValues(
46         std::vector<std::string> &columnsInt, std::vector<std::string> &columnsStr);
47     void GetAllRawContactColumns(std::vector<std::string> &columnsInt, std::vector<std::string> &columnsStr);
48     void GetAllContactDataColumns(std::vector<std::string> &columnInt, std::vector<std::string> &columnStr);
49     void GetAllGroupsColumns(std::vector<std::string> &columnInt, std::vector<std::string> &columnStr);
50     void GetAllContactBlocklistColumns(std::vector<std::string> &columnInt, std::vector<std::string> &columnStr);
51     void GetDetailsContactDataColumns(std::vector<std::string> &columns);
52     void MergeColumns(
53         std::vector<std::string> &columns, std::vector<std::string> &columnsInt, std::vector<std::string> &columnsStr);
54     int64_t RawContactInsertValues(OHOS::DataShare::DataShareValuesBucket &values);
55     int64_t ContactDataInsertValues(OHOS::DataShare::DataShareValuesBucket &values);
56     int64_t GroupsInsertValues(OHOS::DataShare::DataShareValuesBucket &values);
57     int64_t ContactBlocklistInsertValues(OHOS::DataShare::DataShareValuesBucket &values);
58     std::vector<OHOS::DataShare::DataShareValuesBucket> GetBatchList(int64_t rawContactId);
59     void ClearContacts();
60 };
61 } // namespace Test
62 } // namespace Contacts
63 #endif // CONTACTPROFILE_TEST_H
64