1115cd2caSopenharmony_ci/*
2115cd2caSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3115cd2caSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4115cd2caSopenharmony_ci * you may not use this file except in compliance with the License.
5115cd2caSopenharmony_ci * You may obtain a copy of the License at
6115cd2caSopenharmony_ci *
7115cd2caSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8115cd2caSopenharmony_ci *
9115cd2caSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10115cd2caSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11115cd2caSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12115cd2caSopenharmony_ci * See the License for the specific language governing permissions and
13115cd2caSopenharmony_ci * limitations under the License.
14115cd2caSopenharmony_ci */
15115cd2caSopenharmony_ci
16115cd2caSopenharmony_ci#include "contactprofile_test.h"
17115cd2caSopenharmony_ci
18115cd2caSopenharmony_ci#include "data_ability_operation_builder.h"
19115cd2caSopenharmony_ci#include "random_number_utils.h"
20115cd2caSopenharmony_ci
21115cd2caSopenharmony_ci#include "test_common.h"
22115cd2caSopenharmony_ci
23115cd2caSopenharmony_cinamespace Contacts {
24115cd2caSopenharmony_cinamespace Test {
25115cd2caSopenharmony_ciContactProfileTest::ContactProfileTest()
26115cd2caSopenharmony_ci{
27115cd2caSopenharmony_ci}
28115cd2caSopenharmony_ci
29115cd2caSopenharmony_ciContactProfileTest::~ContactProfileTest()
30115cd2caSopenharmony_ci{
31115cd2caSopenharmony_ci}
32115cd2caSopenharmony_ci
33115cd2caSopenharmony_ciint64_t ContactProfileTest::RawContactInsert(std::string displayName,
34115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket &rawContactValues)
35115cd2caSopenharmony_ci{
36115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
37115cd2caSopenharmony_ci    rawContactValues.Put("display_name", displayName);
38115cd2caSopenharmony_ci    int64_t code = contactsDataAbility.Insert(uriRawContact, rawContactValues);
39115cd2caSopenharmony_ci    return code;
40115cd2caSopenharmony_ci}
41115cd2caSopenharmony_ci
42115cd2caSopenharmony_ciint64_t ContactProfileTest::RawContactExpandInsert(
43115cd2caSopenharmony_ci    std::vector<std::string> valueVector, int isFavorite, OHOS::DataShare::DataShareValuesBucket &rawContactValues)
44115cd2caSopenharmony_ci{
45115cd2caSopenharmony_ci    int indexZero = 0;
46115cd2caSopenharmony_ci    int indexOne = 1;
47115cd2caSopenharmony_ci    int indexTwo = 2;
48115cd2caSopenharmony_ci    int indexThree = 3;
49115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
50115cd2caSopenharmony_ci    rawContactValues.Put("display_name", valueVector[indexZero]);
51115cd2caSopenharmony_ci    rawContactValues.Put("company", valueVector[indexOne]);
52115cd2caSopenharmony_ci    rawContactValues.Put("position", valueVector[indexTwo]);
53115cd2caSopenharmony_ci    rawContactValues.Put("favorite", isFavorite);
54115cd2caSopenharmony_ci    rawContactValues.Put("phonetic_name", valueVector[indexThree]);
55115cd2caSopenharmony_ci    int64_t code = contactsDataAbility.Insert(uriRawContact, rawContactValues);
56115cd2caSopenharmony_ci    return code;
57115cd2caSopenharmony_ci}
58115cd2caSopenharmony_ci
59115cd2caSopenharmony_ciint64_t ContactProfileTest::RawContactLastContactedInsert(
60115cd2caSopenharmony_ci    std::string displayName, int lastestContactedTime, OHOS::DataShare::DataShareValuesBucket &rawContactValues)
61115cd2caSopenharmony_ci{
62115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
63115cd2caSopenharmony_ci    rawContactValues.Put("display_name", displayName);
64115cd2caSopenharmony_ci    rawContactValues.Put("lastest_contacted_time", lastestContactedTime);
65115cd2caSopenharmony_ci    int64_t code = contactsDataAbility.Insert(uriRawContact, rawContactValues);
66115cd2caSopenharmony_ci    return code;
67115cd2caSopenharmony_ci}
68115cd2caSopenharmony_ci
69115cd2caSopenharmony_ciint64_t ContactProfileTest::ContactDataInsert(int64_t rawContactId, std::string contentType, std::string detailInfo,
70115cd2caSopenharmony_ci    std::string position, OHOS::DataShare::DataShareValuesBucket &contactDataValues)
71115cd2caSopenharmony_ci{
72115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ProfileUri::CONTACT_DATA);
73115cd2caSopenharmony_ci    contactDataValues.Put("raw_contact_id", rawContactId);
74115cd2caSopenharmony_ci    contactDataValues.Put("content_type", contentType);
75115cd2caSopenharmony_ci    contactDataValues.Put("detail_info", detailInfo);
76115cd2caSopenharmony_ci    contactDataValues.Put("position", position);
77115cd2caSopenharmony_ci    int64_t code = contactsDataAbility.Insert(uriContactData, contactDataValues);
78115cd2caSopenharmony_ci    return code;
79115cd2caSopenharmony_ci}
80115cd2caSopenharmony_ci
81115cd2caSopenharmony_ciint64_t ContactProfileTest::GroupsInsert(std::string groupName, OHOS::DataShare::DataShareValuesBucket &groupValues)
82115cd2caSopenharmony_ci{
83115cd2caSopenharmony_ci    OHOS::Uri uriGroups(ProfileUri::GROUPS);
84115cd2caSopenharmony_ci    groupValues.Put("group_name", groupName);
85115cd2caSopenharmony_ci    int64_t code = contactsDataAbility.Insert(uriGroups, groupValues);
86115cd2caSopenharmony_ci    return code;
87115cd2caSopenharmony_ci}
88115cd2caSopenharmony_ci
89115cd2caSopenharmony_ciint64_t ContactProfileTest::ContactBlocklistInsert(
90115cd2caSopenharmony_ci    std::string phoneNumber, OHOS::DataShare::DataShareValuesBucket &contactBlocklistValues)
91115cd2caSopenharmony_ci{
92115cd2caSopenharmony_ci    OHOS::Uri uriBlocklist(ProfileUri::BLOCKLIST);
93115cd2caSopenharmony_ci    contactBlocklistValues.Put("phone_number", phoneNumber);
94115cd2caSopenharmony_ci    int64_t code = contactsDataAbility.Insert(uriBlocklist, contactBlocklistValues);
95115cd2caSopenharmony_ci    return code;
96115cd2caSopenharmony_ci}
97115cd2caSopenharmony_ci
98115cd2caSopenharmony_ciint ContactProfileTest::ContactUpdate(const std::string &tableName, OHOS::DataShare::DataShareValuesBucket updateValues,
99115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates)
100115cd2caSopenharmony_ci{
101115cd2caSopenharmony_ci    int code = 0;
102115cd2caSopenharmony_ci    if (tableName == ContactTabName::RAW_CONTACT) {
103115cd2caSopenharmony_ci        OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
104115cd2caSopenharmony_ci        code = contactsDataAbility.Update(uriRawContact, predicates, updateValues);
105115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT_DATA) {
106115cd2caSopenharmony_ci        OHOS::Uri uriContactData(ProfileUri::CONTACT_DATA);
107115cd2caSopenharmony_ci        code = contactsDataAbility.Update(uriContactData, predicates, updateValues);
108115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::GROUPS) {
109115cd2caSopenharmony_ci        OHOS::Uri uriGroups(ProfileUri::GROUPS);
110115cd2caSopenharmony_ci        code = contactsDataAbility.Update(uriGroups, predicates, updateValues);
111115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) {
112115cd2caSopenharmony_ci        OHOS::Uri uriBlocklist(ProfileUri::BLOCKLIST);
113115cd2caSopenharmony_ci        code = contactsDataAbility.Update(uriBlocklist, predicates, updateValues);
114115cd2caSopenharmony_ci    } else {
115115cd2caSopenharmony_ci        HILOG_ERROR("ContactsDataAbility ====>no match uri action");
116115cd2caSopenharmony_ci    }
117115cd2caSopenharmony_ci    return code;
118115cd2caSopenharmony_ci}
119115cd2caSopenharmony_ci
120115cd2caSopenharmony_ciint ContactProfileTest::ContactDelete(const std::string &tableName, OHOS::DataShare::DataSharePredicates predicates)
121115cd2caSopenharmony_ci{
122115cd2caSopenharmony_ci    int code = 0;
123115cd2caSopenharmony_ci    if (tableName == ContactTabName::RAW_CONTACT) {
124115cd2caSopenharmony_ci        OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
125115cd2caSopenharmony_ci        code = contactsDataAbility.Delete(uriRawContact, predicates);
126115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT_DATA) {
127115cd2caSopenharmony_ci        OHOS::Uri uriContactData(ProfileUri::CONTACT_DATA);
128115cd2caSopenharmony_ci        code = contactsDataAbility.Delete(uriContactData, predicates);
129115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::GROUPS) {
130115cd2caSopenharmony_ci        OHOS::Uri uriGroups(ProfileUri::GROUPS);
131115cd2caSopenharmony_ci        code = contactsDataAbility.Delete(uriGroups, predicates);
132115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) {
133115cd2caSopenharmony_ci        OHOS::Uri uriBlocklist(ProfileUri::BLOCKLIST);
134115cd2caSopenharmony_ci        code = contactsDataAbility.Delete(uriBlocklist, predicates);
135115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT) {
136115cd2caSopenharmony_ci        OHOS::Uri uriContact(ProfileUri::CONTACT);
137115cd2caSopenharmony_ci        code = contactsDataAbility.Delete(uriContact, predicates);
138115cd2caSopenharmony_ci    } else {
139115cd2caSopenharmony_ci        HILOG_ERROR("ContactsDataAbility ====>no match uri action");
140115cd2caSopenharmony_ci    }
141115cd2caSopenharmony_ci    return code;
142115cd2caSopenharmony_ci}
143115cd2caSopenharmony_ci
144115cd2caSopenharmony_cistd::shared_ptr<OHOS::DataShare::DataShareResultSet> ContactProfileTest::ContactQuery(
145115cd2caSopenharmony_ci    const std::string &tableName, std::vector<std::string> &columns, OHOS::DataShare::DataSharePredicates predicates)
146115cd2caSopenharmony_ci{
147115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet;
148115cd2caSopenharmony_ci
149115cd2caSopenharmony_ci    if (tableName == ContactTabName::RAW_CONTACT) {
150115cd2caSopenharmony_ci        OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
151115cd2caSopenharmony_ci        resultSet = contactsDataAbility.Query(uriRawContact, predicates, columns);
152115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT_DATA) {
153115cd2caSopenharmony_ci        OHOS::Uri uriContactData(ProfileUri::CONTACT_DATA);
154115cd2caSopenharmony_ci        resultSet = contactsDataAbility.Query(uriContactData, predicates, columns);
155115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT) {
156115cd2caSopenharmony_ci        OHOS::Uri uriContact(ProfileUri::CONTACT);
157115cd2caSopenharmony_ci        resultSet = contactsDataAbility.Query(uriContact, predicates, columns);
158115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::GROUPS) {
159115cd2caSopenharmony_ci        OHOS::Uri uriGroups(ProfileUri::GROUPS);
160115cd2caSopenharmony_ci        resultSet = contactsDataAbility.Query(uriGroups, predicates, columns);
161115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) {
162115cd2caSopenharmony_ci        OHOS::Uri uriBlocklist(ProfileUri::BLOCKLIST);
163115cd2caSopenharmony_ci        resultSet = contactsDataAbility.Query(uriBlocklist, predicates, columns);
164115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::DELETED_RAW_CONTACT) {
165115cd2caSopenharmony_ci        OHOS::Uri uriDeletedRawContact(ProfileUri::DELETED_RAW_CONTACT);
166115cd2caSopenharmony_ci        resultSet = contactsDataAbility.Query(uriDeletedRawContact, predicates, columns);
167115cd2caSopenharmony_ci    } else if (tableName == ContactTabName::SEARCH_CONTACT) {
168115cd2caSopenharmony_ci        OHOS::Uri uriSearchContact(ProfileUri::SEARCH);
169115cd2caSopenharmony_ci        resultSet = contactsDataAbility.Query(uriSearchContact, predicates, columns);
170115cd2caSopenharmony_ci    } else {
171115cd2caSopenharmony_ci        HILOG_ERROR("ContactsDataAbility ====>no match uri action");
172115cd2caSopenharmony_ci    }
173115cd2caSopenharmony_ci    return resultSet;
174115cd2caSopenharmony_ci}
175115cd2caSopenharmony_ci
176115cd2caSopenharmony_civoid ContactProfileTest::QueryAndExpectResult(std::string &tableName, OHOS::DataShare::DataSharePredicates predicates,
177115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket &values, std::string testName)
178115cd2caSopenharmony_ci{
179115cd2caSopenharmony_ci    std::vector<std::string> columns;
180115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(tableName, columns, predicates);
181115cd2caSopenharmony_ci    CheckResultSet(values, resultSet, testName);
182115cd2caSopenharmony_ci}
183115cd2caSopenharmony_ci
184115cd2caSopenharmony_ciint64_t ContactProfileTest::RawContactInsertValues(OHOS::DataShare::DataShareValuesBucket &values)
185115cd2caSopenharmony_ci{
186115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
187115cd2caSopenharmony_ci    return contactsDataAbility.Insert(uriRawContact, values);
188115cd2caSopenharmony_ci}
189115cd2caSopenharmony_ci
190115cd2caSopenharmony_ciint64_t ContactProfileTest::ContactDataInsertValues(OHOS::DataShare::DataShareValuesBucket &values)
191115cd2caSopenharmony_ci{
192115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ProfileUri::CONTACT_DATA);
193115cd2caSopenharmony_ci    return contactsDataAbility.Insert(uriContactData, values);
194115cd2caSopenharmony_ci}
195115cd2caSopenharmony_ci
196115cd2caSopenharmony_ciint64_t ContactProfileTest::GroupsInsertValues(OHOS::DataShare::DataShareValuesBucket &values)
197115cd2caSopenharmony_ci{
198115cd2caSopenharmony_ci    OHOS::Uri uriGroups(ProfileUri::GROUPS);
199115cd2caSopenharmony_ci    return contactsDataAbility.Insert(uriGroups, values);
200115cd2caSopenharmony_ci}
201115cd2caSopenharmony_ci
202115cd2caSopenharmony_ciint64_t ContactProfileTest::ContactBlocklistInsertValues(OHOS::DataShare::DataShareValuesBucket &values)
203115cd2caSopenharmony_ci{
204115cd2caSopenharmony_ci    OHOS::Uri uriContactBolcklist(ProfileUri::BLOCKLIST);
205115cd2caSopenharmony_ci    return contactsDataAbility.Insert(uriContactBolcklist, values);
206115cd2caSopenharmony_ci}
207115cd2caSopenharmony_ci
208115cd2caSopenharmony_civoid ContactProfileTest::GetAllRawContactColumns(
209115cd2caSopenharmony_ci    std::vector<std::string> &columnInt, std::vector<std::string> &columnStr)
210115cd2caSopenharmony_ci{
211115cd2caSopenharmony_ci    columnInt.push_back("photo_id");
212115cd2caSopenharmony_ci    columnInt.push_back("photo_file_id");
213115cd2caSopenharmony_ci    columnInt.push_back("is_transfer_voicemail");
214115cd2caSopenharmony_ci    columnInt.push_back("account_id");
215115cd2caSopenharmony_ci    columnInt.push_back("version");
216115cd2caSopenharmony_ci    columnInt.push_back("contacted_count");
217115cd2caSopenharmony_ci    columnInt.push_back("lastest_contacted_time");
218115cd2caSopenharmony_ci    columnInt.push_back("favorite");
219115cd2caSopenharmony_ci    columnInt.push_back("phonetic_name_type");
220115cd2caSopenharmony_ci    columnInt.push_back("read_only");
221115cd2caSopenharmony_ci    columnInt.push_back("merge_mode");
222115cd2caSopenharmony_ci    columnInt.push_back("is_need_merge");
223115cd2caSopenharmony_ci    columnInt.push_back("merge_status");
224115cd2caSopenharmony_ci    columnInt.push_back("is_merge_target");
225115cd2caSopenharmony_ci    columnInt.push_back("vibration_setting");
226115cd2caSopenharmony_ci    columnInt.push_back("sync_id");
227115cd2caSopenharmony_ci
228115cd2caSopenharmony_ci    columnStr.push_back("personal_ringtone");
229115cd2caSopenharmony_ci    columnStr.push_back("personal_notification_ringtone");
230115cd2caSopenharmony_ci    columnStr.push_back("photo_first_name");
231115cd2caSopenharmony_ci    columnStr.push_back("display_name");
232115cd2caSopenharmony_ci    columnStr.push_back("sort");
233115cd2caSopenharmony_ci    columnStr.push_back("favorite_order");
234115cd2caSopenharmony_ci    columnStr.push_back("phonetic_name");
235115cd2caSopenharmony_ci    columnStr.push_back("company");
236115cd2caSopenharmony_ci    columnStr.push_back("position");
237115cd2caSopenharmony_ci    columnStr.push_back("sort_first_letter");
238115cd2caSopenharmony_ci    columnStr.push_back("syn_1");
239115cd2caSopenharmony_ci    columnStr.push_back("syn_2");
240115cd2caSopenharmony_ci    columnStr.push_back("syn_3");
241115cd2caSopenharmony_ci}
242115cd2caSopenharmony_ci
243115cd2caSopenharmony_civoid ContactProfileTest::GetAllContactDataColumns(
244115cd2caSopenharmony_ci    std::vector<std::string> &columnInt, std::vector<std::string> &columnStr)
245115cd2caSopenharmony_ci{
246115cd2caSopenharmony_ci    columnInt.push_back("read_only");
247115cd2caSopenharmony_ci    columnInt.push_back("version");
248115cd2caSopenharmony_ci    columnInt.push_back("is_preferred_number");
249115cd2caSopenharmony_ci
250115cd2caSopenharmony_ci    columnStr.push_back("detail_info");
251115cd2caSopenharmony_ci    columnStr.push_back("family_name");
252115cd2caSopenharmony_ci    columnStr.push_back("middle_name_phonetic");
253115cd2caSopenharmony_ci    columnStr.push_back("given_name");
254115cd2caSopenharmony_ci    columnStr.push_back("given_name_phonetic");
255115cd2caSopenharmony_ci    columnStr.push_back("alias_detail_info");
256115cd2caSopenharmony_ci    columnStr.push_back("phonetic_name");
257115cd2caSopenharmony_ci    columnStr.push_back("position");
258115cd2caSopenharmony_ci    columnStr.push_back("extend1");
259115cd2caSopenharmony_ci    columnStr.push_back("extend2");
260115cd2caSopenharmony_ci    columnStr.push_back("extend3");
261115cd2caSopenharmony_ci    columnStr.push_back("extend4");
262115cd2caSopenharmony_ci    columnStr.push_back("city");
263115cd2caSopenharmony_ci    columnStr.push_back("country");
264115cd2caSopenharmony_ci    columnStr.push_back("neighborhood");
265115cd2caSopenharmony_ci    columnStr.push_back("pobox");
266115cd2caSopenharmony_ci    columnStr.push_back("region");
267115cd2caSopenharmony_ci    columnStr.push_back("street");
268115cd2caSopenharmony_ci    columnStr.push_back("alpha_name");
269115cd2caSopenharmony_ci    columnStr.push_back("other_lan_last_name");
270115cd2caSopenharmony_ci    columnStr.push_back("other_lan_first_name");
271115cd2caSopenharmony_ci    columnStr.push_back("lan_style");
272115cd2caSopenharmony_ci    columnStr.push_back("custom_data");
273115cd2caSopenharmony_ci    columnStr.push_back("extend6");
274115cd2caSopenharmony_ci    columnStr.push_back("extend7");
275115cd2caSopenharmony_ci    columnStr.push_back("syn_1");
276115cd2caSopenharmony_ci    columnStr.push_back("syn_2");
277115cd2caSopenharmony_ci    columnStr.push_back("syn_3");
278115cd2caSopenharmony_ci}
279115cd2caSopenharmony_ci
280115cd2caSopenharmony_civoid ContactProfileTest::GetAllGroupsColumns(std::vector<std::string> &columnInt, std::vector<std::string> &columnStr)
281115cd2caSopenharmony_ci{
282115cd2caSopenharmony_ci    columnInt.push_back("account_id");
283115cd2caSopenharmony_ci    columnInt.push_back("ringtone_modify_time");
284115cd2caSopenharmony_ci    columnInt.push_back("lastest_modify_time");
285115cd2caSopenharmony_ci    columnStr.push_back("group_name");
286115cd2caSopenharmony_ci    columnStr.push_back("group_notes");
287115cd2caSopenharmony_ci    columnStr.push_back("group_ringtone");
288115cd2caSopenharmony_ci}
289115cd2caSopenharmony_ci
290115cd2caSopenharmony_civoid ContactProfileTest::GetAllContactBlocklistColumns(
291115cd2caSopenharmony_ci    std::vector<std::string> &columnInt, std::vector<std::string> &columnStr)
292115cd2caSopenharmony_ci{
293115cd2caSopenharmony_ci    columnInt.push_back("types");
294115cd2caSopenharmony_ci    columnStr.push_back("phone_number");
295115cd2caSopenharmony_ci    columnStr.push_back("content");
296115cd2caSopenharmony_ci    columnStr.push_back("time_stamp");
297115cd2caSopenharmony_ci}
298115cd2caSopenharmony_ci
299115cd2caSopenharmony_civoid ContactProfileTest::GetDetailsContactDataColumns(std::vector<std::string> &columns)
300115cd2caSopenharmony_ci{
301115cd2caSopenharmony_ci    columns.push_back("email");
302115cd2caSopenharmony_ci    columns.push_back("im");
303115cd2caSopenharmony_ci    columns.push_back("nickname");
304115cd2caSopenharmony_ci    columns.push_back("organization");
305115cd2caSopenharmony_ci    columns.push_back("phone");
306115cd2caSopenharmony_ci    columns.push_back("name");
307115cd2caSopenharmony_ci    columns.push_back("postal_address");
308115cd2caSopenharmony_ci    columns.push_back("photo");
309115cd2caSopenharmony_ci    columns.push_back("group_membership");
310115cd2caSopenharmony_ci    columns.push_back("note");
311115cd2caSopenharmony_ci    columns.push_back("contactProfile_event");
312115cd2caSopenharmony_ci    columns.push_back("website");
313115cd2caSopenharmony_ci    columns.push_back("relation");
314115cd2caSopenharmony_ci    columns.push_back("contactProfile_misc");
315115cd2caSopenharmony_ci    columns.push_back("hicall_device");
316115cd2caSopenharmony_ci    columns.push_back("camcard");
317115cd2caSopenharmony_ci    columns.push_back("sip_address");
318115cd2caSopenharmony_ci}
319115cd2caSopenharmony_ci
320115cd2caSopenharmony_civoid ContactProfileTest::MergeColumns(
321115cd2caSopenharmony_ci    std::vector<std::string> &columns, std::vector<std::string> &columnsInt, std::vector<std::string> &columnsStr)
322115cd2caSopenharmony_ci{
323115cd2caSopenharmony_ci    int columnsIntSize = columnsInt.size();
324115cd2caSopenharmony_ci    for (int i = 0; i < columnsIntSize; i++) {
325115cd2caSopenharmony_ci        columns.push_back(columnsInt[i]);
326115cd2caSopenharmony_ci    }
327115cd2caSopenharmony_ci    int columnsStrSize = columnsStr.size();
328115cd2caSopenharmony_ci    for (int i = 0; i < columnsStrSize; i++) {
329115cd2caSopenharmony_ci        columns.push_back(columnsStr[i]);
330115cd2caSopenharmony_ci    }
331115cd2caSopenharmony_ci}
332115cd2caSopenharmony_ci
333115cd2caSopenharmony_ci/**
334115cd2caSopenharmony_ci * @brief get ValuesBucket
335115cd2caSopenharmony_ci * @params columnsStart column start index
336115cd2caSopenharmony_ci * @params columnsEnd column end index
337115cd2caSopenharmony_ci * @return ValuesBucket
338115cd2caSopenharmony_ci */
339115cd2caSopenharmony_ciOHOS::DataShare::DataShareValuesBucket ContactProfileTest::GetAllColumnsValues(
340115cd2caSopenharmony_ci    std::vector<std::string> &columnsInt, std::vector<std::string> &columnsStr)
341115cd2caSopenharmony_ci{
342115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket;
343115cd2caSopenharmony_ci    int randomInt = 0;
344115cd2caSopenharmony_ci    int columnsIntSize = columnsInt.size();
345115cd2caSopenharmony_ci    for (int i = 0; i < columnsIntSize; i++) {
346115cd2caSopenharmony_ci        randomInt = ContactsRand();
347115cd2caSopenharmony_ci        HILOG_INFO("rand=%{public}d", randomInt);
348115cd2caSopenharmony_ci        valuesBucket.Put(columnsInt[i], randomInt);
349115cd2caSopenharmony_ci    }
350115cd2caSopenharmony_ci    std::string randomStr = "";
351115cd2caSopenharmony_ci    int columnsStringSize = columnsStr.size();
352115cd2caSopenharmony_ci    for (int i = 0; i < columnsStringSize; i++) {
353115cd2caSopenharmony_ci        randomStr = columnsStr[i] + std::to_string(ContactsRand());
354115cd2caSopenharmony_ci        valuesBucket.Put(columnsStr[i], randomStr);
355115cd2caSopenharmony_ci    }
356115cd2caSopenharmony_ci
357115cd2caSopenharmony_ci    return valuesBucket;
358115cd2caSopenharmony_ci}
359115cd2caSopenharmony_ci
360115cd2caSopenharmony_civoid ContactProfileTest::ClearContacts()
361115cd2caSopenharmony_ci{
362115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
363115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
364115cd2caSopenharmony_ci    predicates.NotEqualTo("id", "0");
365115cd2caSopenharmony_ci    predicates.And();
366115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
367115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContact, predicates);
368115cd2caSopenharmony_ci    int time = 1000;
369115cd2caSopenharmony_ci    std::chrono::milliseconds dura(time);
370115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
371115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
372115cd2caSopenharmony_ci    OHOS::Uri uriRawContactComplete(ProfileUri::DELETED_RAW_CONTACT);
373115cd2caSopenharmony_ci    predicates2.NotEqualTo("id", "0");
374115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContactComplete, predicates2);
375115cd2caSopenharmony_ci}
376115cd2caSopenharmony_ci
377115cd2caSopenharmony_ci/*
378115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_100
379115cd2caSopenharmony_ci * @tc.name    Add the basic information of a single contact and verify whether the insertion is successful
380115cd2caSopenharmony_ci * @tc.desc    New capabilities for basic contact data
381115cd2caSopenharmony_ci * @tc.level   Level1
382115cd2caSopenharmony_ci * @tc.size    MediumTest
383115cd2caSopenharmony_ci * @tc.type    Function
384115cd2caSopenharmony_ci */
385115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_100, testing::ext::TestSize.Level1)
386115cd2caSopenharmony_ci{
387115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_100 is starting! ---");
388115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
389115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("liming", values);
390115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_100 : rawContactId = %{public}ld", rawContactId);
391115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
392115cd2caSopenharmony_ci
393115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
394115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
395115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
396115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, values, "contactProfile_Insert_test_100");
397115cd2caSopenharmony_ci    ClearContacts();
398115cd2caSopenharmony_ci}
399115cd2caSopenharmony_ci
400115cd2caSopenharmony_ci/*
401115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_200
402115cd2caSopenharmony_ci * @tc.name    Add the basic information of multiple contacts and verify whether the insertion is successful
403115cd2caSopenharmony_ci * @tc.desc    New capabilities for basic contact data
404115cd2caSopenharmony_ci * @tc.level   Level1
405115cd2caSopenharmony_ci * @tc.size    MediumTest
406115cd2caSopenharmony_ci * @tc.type    Function
407115cd2caSopenharmony_ci */
408115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_200, testing::ext::TestSize.Level1)
409115cd2caSopenharmony_ci{
410115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_200 is starting! ---");
411115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
412115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("xiaoqian", values);
413115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_200 : rawContactIdOne = %{public}ld", rawContactIdOne);
414115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
415115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
416115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdOne));
417115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
418115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, values, "contactProfile_Insert_test_200");
419115cd2caSopenharmony_ci    values.Clear();
420115cd2caSopenharmony_ci
421115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("xiaowang", values);
422115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_200 : rawContactIdTwo = %{public}ld", rawContactIdTwo);
423115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
424115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdTwo));
425115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, values, "contactProfile_Insert_test_200");
426115cd2caSopenharmony_ci
427115cd2caSopenharmony_ci    int64_t rawContactIdThree = RawContactInsert("xiaozhou", values);
428115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_200 : rawContactIdThree = %{public}ld", rawContactIdThree);
429115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdThree, 0);
430115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
431115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawContactIdThree));
432115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates2, values, "contactProfile_Insert_test_200");
433115cd2caSopenharmony_ci    ClearContacts();
434115cd2caSopenharmony_ci}
435115cd2caSopenharmony_ci
436115cd2caSopenharmony_ci/*
437115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_300
438115cd2caSopenharmony_ci * @tc.name    Add a full field data to the raw_contact table and verify whether the insertion is successful
439115cd2caSopenharmony_ci * @tc.desc    Added ability to raw_contact
440115cd2caSopenharmony_ci * @tc.level   Level1
441115cd2caSopenharmony_ci * @tc.size    MediumTest
442115cd2caSopenharmony_ci * @tc.type    Function
443115cd2caSopenharmony_ci */
444115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_300, testing::ext::TestSize.Level1)
445115cd2caSopenharmony_ci{
446115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Insert_test_300 is starting!-----");
447115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
448115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
449115cd2caSopenharmony_ci    std::vector<std::string> columns;
450115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
451115cd2caSopenharmony_ci    GetAllRawContactColumns(columnsInt, columnsStr);
452115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
453115cd2caSopenharmony_ci    int rawId = RawContactInsertValues(valuesBucket);
454115cd2caSopenharmony_ci    EXPECT_GT(rawId, 0);
455115cd2caSopenharmony_ci
456115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
457115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
458115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawId));
459115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
460115cd2caSopenharmony_ci
461115cd2caSopenharmony_ci    // resultSet count 1
462115cd2caSopenharmony_ci    int rowCount = -1;
463115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
464115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
465115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Insert_test_300");
466115cd2caSopenharmony_ci    ClearContacts();
467115cd2caSopenharmony_ci}
468115cd2caSopenharmony_ci
469115cd2caSopenharmony_ci/*
470115cd2caSopenharmony_ci* @tc.number  contactProfile_Insert_test_400
471115cd2caSopenharmony_ci* @tc.name    Add the basic information of a single contact and verify whether the insertion is successful
472115cd2caSopenharmony_ci                (name, name Pinyin, Pinyin name, company, position, favorite or not)
473115cd2caSopenharmony_ci* @tc.desc    Add basic information of a single contact
474115cd2caSopenharmony_ci* @tc.level   Level1
475115cd2caSopenharmony_ci* @tc.size    MediumTest
476115cd2caSopenharmony_ci* @tc.type    Function
477115cd2caSopenharmony_ci*/
478115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_400, testing::ext::TestSize.Level1)
479115cd2caSopenharmony_ci{
480115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_400 is starting! ---");
481115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
482115cd2caSopenharmony_ci    std::vector<std::string> vectorValue;
483115cd2caSopenharmony_ci    vectorValue.push_back("liming");
484115cd2caSopenharmony_ci    vectorValue.push_back("tiantianxaingshang");
485115cd2caSopenharmony_ci    vectorValue.push_back("Test");
486115cd2caSopenharmony_ci    vectorValue.push_back("liming||lm");
487115cd2caSopenharmony_ci    int64_t rawContactId = RawContactExpandInsert(vectorValue, 1, values);
488115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_400 : rawContactId = %{public}ld", rawContactId);
489115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
490115cd2caSopenharmony_ci
491115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
492115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
493115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
494115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, values, "contactProfile_Insert_test_400");
495115cd2caSopenharmony_ci    ClearContacts();
496115cd2caSopenharmony_ci}
497115cd2caSopenharmony_ci
498115cd2caSopenharmony_ci/*
499115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_500
500115cd2caSopenharmony_ci * @tc.name    Add individual contact details and verify that the insertion was successful
501115cd2caSopenharmony_ci *              (including name, nickname, company, position, mobile phone number and email address)
502115cd2caSopenharmony_ci * @tc.desc    New ability to contact detailed data
503115cd2caSopenharmony_ci * @tc.level   Level1
504115cd2caSopenharmony_ci * @tc.size    MediumTest
505115cd2caSopenharmony_ci * @tc.type    Function
506115cd2caSopenharmony_ci */
507115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_500, testing::ext::TestSize.Level1)
508115cd2caSopenharmony_ci{
509115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_500 is starting! ---");
510115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
511115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
512115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("ligang", rawContactValues);
513115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_500 : rawContactId = %{public}ld", rawContactId);
514115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
515115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
516115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "name", "ligang", "", values);
517115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_500 : contactDataIdOne = %{public}ld", contactDataIdOne);
518115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
519115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
520115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
521115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, values, "contactProfile_Insert_test_500");
522115cd2caSopenharmony_ci    values.Clear();
523115cd2caSopenharmony_ci
524115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "organization", "tiantianxaingshang", "Test", values);
525115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_500 : contactDataIdTwo = %{public}ld", contactDataIdTwo);
526115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
527115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
528115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
529115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, values, "contactProfile_Insert_test_500");
530115cd2caSopenharmony_ci    values.Clear();
531115cd2caSopenharmony_ci
532115cd2caSopenharmony_ci    int64_t contactDataIdThree = ContactDataInsert(rawContactId, "email", "8523@163.com", "", values);
533115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_500 : contactDataIdThree = %{public}ld", contactDataIdThree);
534115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdThree, 0);
535115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
536115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
537115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, values, "contactProfile_Insert_test_500");
538115cd2caSopenharmony_ci    values.Clear();
539115cd2caSopenharmony_ci
540115cd2caSopenharmony_ci    int64_t contactDataIdFour = ContactDataInsert(rawContactId, "phone", "188520314", "", values);
541115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_500 : contactDataIdFour = %{public}ld", contactDataIdFour);
542115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdFour, 0);
543115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates4;
544115cd2caSopenharmony_ci    predicates4.EqualTo("id", std::to_string(contactDataIdFour));
545115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates4, values, "contactProfile_Insert_test_500");
546115cd2caSopenharmony_ci    values.Clear();
547115cd2caSopenharmony_ci
548115cd2caSopenharmony_ci    int64_t contactDataIdFive = ContactDataInsert(rawContactId, "nickname", "xiaogang", "", values);
549115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_500 : contactDataIdFive = %{public}ld", contactDataIdFive);
550115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdFive, 0);
551115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates5;
552115cd2caSopenharmony_ci    predicates5.EqualTo("id", std::to_string(contactDataIdFive));
553115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates5, values, "contactProfile_Insert_test_500");
554115cd2caSopenharmony_ci    values.Clear();
555115cd2caSopenharmony_ci    ClearContacts();
556115cd2caSopenharmony_ci}
557115cd2caSopenharmony_ci
558115cd2caSopenharmony_ci/*
559115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_600
560115cd2caSopenharmony_ci * @tc.name    Add individual contact details and verify that the insertion was successful
561115cd2caSopenharmony_ci *              (including home, group, aim, notes, and URL)
562115cd2caSopenharmony_ci * @tc.desc    New ability to contact detailed data
563115cd2caSopenharmony_ci * @tc.level   Level1
564115cd2caSopenharmony_ci * @tc.size    MediumTest
565115cd2caSopenharmony_ci * @tc.type    Function
566115cd2caSopenharmony_ci */
567115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_600, testing::ext::TestSize.Level1)
568115cd2caSopenharmony_ci{
569115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_600 is starting! ---");
570115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
571115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
572115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("chengshao", values);
573115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_600 : rawContactId = %{public}ld", rawContactId);
574115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
575115cd2caSopenharmony_ci    values.Clear();
576115cd2caSopenharmony_ci
577115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "postal_address", "NanJingCity", "", values);
578115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_600 : contactDataIdOne = %{public}ld", contactDataIdOne);
579115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
580115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
581115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
582115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, values, "contactProfile_Insert_test_600");
583115cd2caSopenharmony_ci    values.Clear();
584115cd2caSopenharmony_ci
585115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "group_membership", "1", "", values);
586115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_600 : contactDataIdTwo = %{public}ld", contactDataIdTwo);
587115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
588115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
589115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
590115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, values, "contactProfile_Insert_test_600");
591115cd2caSopenharmony_ci    values.Clear();
592115cd2caSopenharmony_ci
593115cd2caSopenharmony_ci    int64_t contactDataIdThree = ContactDataInsert(rawContactId, "note", "dalao", "", values);
594115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_600 : contactDataIdThree = %{public}ld", contactDataIdThree);
595115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
596115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
597115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, values, "contactProfile_Insert_test_600");
598115cd2caSopenharmony_ci    values.Clear();
599115cd2caSopenharmony_ci
600115cd2caSopenharmony_ci    int64_t contactDataIdFour = ContactDataInsert(rawContactId, "im", "aaaa", "", values);
601115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_600 : contactDataIdFour = %{public}ld", contactDataIdFour);
602115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdFour, 0);
603115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates4;
604115cd2caSopenharmony_ci    predicates4.EqualTo("id", std::to_string(contactDataIdFour));
605115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates4, values, "contactProfile_Insert_test_600");
606115cd2caSopenharmony_ci    values.Clear();
607115cd2caSopenharmony_ci
608115cd2caSopenharmony_ci    int64_t contactDataIdFive = ContactDataInsert(rawContactId, "website", "www.48236.com", "", values);
609115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_600 : contactDataIdFive = %{public}ld", contactDataIdFive);
610115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdFive, 0);
611115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates5;
612115cd2caSopenharmony_ci    predicates5.EqualTo("id", std::to_string(contactDataIdFive));
613115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates5, values, "contactProfile_Insert_test_600");
614115cd2caSopenharmony_ci    values.Clear();
615115cd2caSopenharmony_ci    ClearContacts();
616115cd2caSopenharmony_ci}
617115cd2caSopenharmony_ci
618115cd2caSopenharmony_ci/*
619115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_700
620115cd2caSopenharmony_ci * @tc.name    Add individual contact details and verify that the insertion was successful
621115cd2caSopenharmony_ci *              (including phone ring tones, birthdays, and assistants)
622115cd2caSopenharmony_ci * @tc.desc    New ability to contact detailed data
623115cd2caSopenharmony_ci * @tc.level   Level1
624115cd2caSopenharmony_ci * @tc.size    MediumTest
625115cd2caSopenharmony_ci * @tc.type    Function
626115cd2caSopenharmony_ci */
627115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_700, testing::ext::TestSize.Level1)
628115cd2caSopenharmony_ci{
629115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_700 is starting! ---");
630115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
631115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
632115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("yanshao", values);
633115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_700 : rawContactId = %{public}ld", rawContactId);
634115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
635115cd2caSopenharmony_ci    values.Clear();
636115cd2caSopenharmony_ci
637115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "contactProfile_event", "19960229", "", values);
638115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_700 : contactDataIdOne = %{public}ld", contactDataIdOne);
639115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
640115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
641115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
642115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, values, "contactProfile_Insert_test_700");
643115cd2caSopenharmony_ci    values.Clear();
644115cd2caSopenharmony_ci
645115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "relation", "Secretary", "", values);
646115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_700 : contactDataIdTwo = %{public}ld", contactDataIdTwo);
647115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
648115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
649115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
650115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, values, "contactProfile_Insert_test_700");
651115cd2caSopenharmony_ci    values.Clear();
652115cd2caSopenharmony_ci
653115cd2caSopenharmony_ci    int64_t contactDataIdThree = ContactDataInsert(rawContactId, "contactProfile_misc", "1314", "", values);
654115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_700 : contactDataIdThree = %{public}ld", contactDataIdThree);
655115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdThree, 0);
656115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
657115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
658115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, values, "contactProfile_Insert_test_700");
659115cd2caSopenharmony_ci    values.Clear();
660115cd2caSopenharmony_ci    ClearContacts();
661115cd2caSopenharmony_ci}
662115cd2caSopenharmony_ci
663115cd2caSopenharmony_ci/*
664115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_800
665115cd2caSopenharmony_ci * @tc.name    Add all details of a single contact and verify whether the insertion is successful
666115cd2caSopenharmony_ci *              (name, mobile number, company, position, nickname, email, home, remarks, aim, birthday, website,
667115cd2caSopenharmony_ci * assistant, group, phone ring)
668115cd2caSopenharmony_ci * @tc.desc    New ability to contact detailed data
669115cd2caSopenharmony_ci * @tc.level   Level1
670115cd2caSopenharmony_ci * @tc.size    MediumTest
671115cd2caSopenharmony_ci * @tc.type    Function
672115cd2caSopenharmony_ci */
673115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_800, testing::ext::TestSize.Level1)
674115cd2caSopenharmony_ci{
675115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_800 is starting! ---");
676115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawValuesBucket;
677115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("insert_detail_contactdata", rawValuesBucket);
678115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
679115cd2caSopenharmony_ci
680115cd2caSopenharmony_ci    std::vector<std::string> columns;
681115cd2caSopenharmony_ci    std::vector<std::string> columnQuery;
682115cd2caSopenharmony_ci    columnQuery.push_back("detail_info");
683115cd2caSopenharmony_ci    GetDetailsContactDataColumns(columns);
684115cd2caSopenharmony_ci
685115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket;
686115cd2caSopenharmony_ci
687115cd2caSopenharmony_ci    std::string randomStr = "";
688115cd2caSopenharmony_ci    std::string tableName = ContactTabName::CONTACT_DATA;
689115cd2caSopenharmony_ci    int columnSize = columns.size();
690115cd2caSopenharmony_ci    for (int i = 0; i < columnSize; i++) {
691115cd2caSopenharmony_ci        randomStr = columns[i] + std::to_string(ContactsRand());
692115cd2caSopenharmony_ci        valuesBucket.Put("raw_contact_id", rawContactId);
693115cd2caSopenharmony_ci        valuesBucket.Put("content_type", columns[i]);
694115cd2caSopenharmony_ci        valuesBucket.Put("detail_info", randomStr);
695115cd2caSopenharmony_ci        int contactDataId = ContactDataInsertValues(valuesBucket);
696115cd2caSopenharmony_ci        EXPECT_GT(contactDataId, 0);
697115cd2caSopenharmony_ci
698115cd2caSopenharmony_ci        OHOS::DataShare::DataSharePredicates predicates;
699115cd2caSopenharmony_ci        predicates.EqualTo("id", std::to_string(contactDataId));
700115cd2caSopenharmony_ci        std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
701115cd2caSopenharmony_ci            ContactQuery(tableName, columnQuery, predicates);
702115cd2caSopenharmony_ci        int rowCount = -1;
703115cd2caSopenharmony_ci        resultSet->GetRowCount(rowCount);
704115cd2caSopenharmony_ci        EXPECT_EQ(1, rowCount);
705115cd2caSopenharmony_ci        CheckResultSet(valuesBucket, resultSet, "contactProfile_Insert_test_800");
706115cd2caSopenharmony_ci        valuesBucket.Clear();
707115cd2caSopenharmony_ci    }
708115cd2caSopenharmony_ci    ClearContacts();
709115cd2caSopenharmony_ci}
710115cd2caSopenharmony_ci
711115cd2caSopenharmony_ci/*
712115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_900
713115cd2caSopenharmony_ci * @tc.name    Add multiple contact details and verify that the insertion was successful
714115cd2caSopenharmony_ci * @tc.desc    New ability to contact detailed data
715115cd2caSopenharmony_ci * @tc.level   Level1
716115cd2caSopenharmony_ci * @tc.size    MediumTest
717115cd2caSopenharmony_ci * @tc.type    Function
718115cd2caSopenharmony_ci */
719115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_900, testing::ext::TestSize.Level1)
720115cd2caSopenharmony_ci{
721115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_900 is starting! ---");
722115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
723115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
724115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaoming", values);
725115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
726115cd2caSopenharmony_ci    values.Clear();
727115cd2caSopenharmony_ci
728115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "name", "xiaoming", "", values);
729115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
730115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
731115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
732115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, values, "contactProfile_Insert_test_900");
733115cd2caSopenharmony_ci    values.Clear();
734115cd2caSopenharmony_ci
735115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "organization", "tiantianxaingshang", "Test", values);
736115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
737115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
738115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
739115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, values, "contactProfile_Insert_test_900");
740115cd2caSopenharmony_ci    values.Clear();
741115cd2caSopenharmony_ci
742115cd2caSopenharmony_ci    rawContactId = RawContactInsert("lihong", values);
743115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_900 : rawContactId = %{public}ld", rawContactId);
744115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
745115cd2caSopenharmony_ci    values.Clear();
746115cd2caSopenharmony_ci
747115cd2caSopenharmony_ci    int64_t contactDataIdThree = ContactDataInsert(rawContactId, "name", "lihong", "", values);
748115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_900 : contactDataIdThree = %{public}ld", contactDataIdThree);
749115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdThree, 0);
750115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
751115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
752115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, values, "contactProfile_Insert_test_900");
753115cd2caSopenharmony_ci    values.Clear();
754115cd2caSopenharmony_ci
755115cd2caSopenharmony_ci    int64_t contactDataIdFour = ContactDataInsert(rawContactId, "organization", "tiantianxaingshang", "Test", values);
756115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Insert_test_900 : contactDataIdFour = %{public}ld", contactDataIdFour);
757115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdFour, 0);
758115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates4;
759115cd2caSopenharmony_ci    predicates4.EqualTo("id", std::to_string(contactDataIdFour));
760115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates4, values, "contactProfile_Insert_test_900");
761115cd2caSopenharmony_ci    values.Clear();
762115cd2caSopenharmony_ci    ClearContacts();
763115cd2caSopenharmony_ci}
764115cd2caSopenharmony_ci
765115cd2caSopenharmony_ci/*
766115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_1000
767115cd2caSopenharmony_ci * @tc.name    Add a full field data to the contact_data table and verify that the insertion was successful
768115cd2caSopenharmony_ci * @tc.desc    Added ability to contactProfile_data
769115cd2caSopenharmony_ci * @tc.level   Level1
770115cd2caSopenharmony_ci * @tc.size    MediumTest
771115cd2caSopenharmony_ci * @tc.type    Function
772115cd2caSopenharmony_ci */
773115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_1000, testing::ext::TestSize.Level1)
774115cd2caSopenharmony_ci{
775115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Insert_test_1000 is starting!-----");
776115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
777115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
778115cd2caSopenharmony_ci    std::vector<std::string> columns;
779115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
780115cd2caSopenharmony_ci    GetAllContactDataColumns(columnsInt, columnsStr);
781115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
782115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
783115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("feimaomao", rawContactValues);
784115cd2caSopenharmony_ci    valuesBucket.Put("raw_contact_id", rawContactId);
785115cd2caSopenharmony_ci    // type 6 is name
786115cd2caSopenharmony_ci    valuesBucket.Put("type_id", 6);
787115cd2caSopenharmony_ci    int ContactDataId = ContactDataInsertValues(valuesBucket);
788115cd2caSopenharmony_ci    EXPECT_GT(ContactDataId, 0);
789115cd2caSopenharmony_ci
790115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
791115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
792115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
793115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
794115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Insert_test_1000");
795115cd2caSopenharmony_ci    // resultSet count 1
796115cd2caSopenharmony_ci    int rowCount = -1;
797115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
798115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
799115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Insert_test_1000");
800115cd2caSopenharmony_ci    ClearContacts();
801115cd2caSopenharmony_ci}
802115cd2caSopenharmony_ci
803115cd2caSopenharmony_ci/*
804115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1100
805115cd2caSopenharmony_ci * @tc.name    Modify several basic information of the contact, and verify whether the modification is successful
806115cd2caSopenharmony_ci *              (including name, name Pinyin, Pinyin name, company, position and favorite)
807115cd2caSopenharmony_ci * @tc.desc    Contacts basic data table update ability
808115cd2caSopenharmony_ci * @tc.level   Level1
809115cd2caSopenharmony_ci * @tc.size    MediumTest
810115cd2caSopenharmony_ci * @tc.type    Function
811115cd2caSopenharmony_ci */
812115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1100, testing::ext::TestSize.Level1)
813115cd2caSopenharmony_ci{
814115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1100 is starting! ---");
815115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
816115cd2caSopenharmony_ci    std::vector<std::string> vectorValue;
817115cd2caSopenharmony_ci    vectorValue.push_back("zhangming");
818115cd2caSopenharmony_ci    vectorValue.push_back("tiantianxaingshang");
819115cd2caSopenharmony_ci    vectorValue.push_back("Test");
820115cd2caSopenharmony_ci    vectorValue.push_back("zhangming||zm");
821115cd2caSopenharmony_ci    int64_t rawContactId = RawContactExpandInsert(vectorValue, 1, values);
822115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1100 : rawContactId = %{public}ld", rawContactId);
823115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
824115cd2caSopenharmony_ci
825115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
826115cd2caSopenharmony_ci    updateValues.Put("display_name", "dongming");
827115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
828115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
829115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
830115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
831115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
832115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_1100");
833115cd2caSopenharmony_ci
834115cd2caSopenharmony_ci    updateValues.Clear();
835115cd2caSopenharmony_ci    updateValues.Put("company", "XXXX");
836115cd2caSopenharmony_ci    updateCode = ContactUpdate(rawContacts, updateValues, predicates);
837115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
838115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_1100");
839115cd2caSopenharmony_ci
840115cd2caSopenharmony_ci    updateValues.Clear();
841115cd2caSopenharmony_ci    updateValues.Put("position", "Secretary");
842115cd2caSopenharmony_ci    updateCode = ContactUpdate(rawContacts, updateValues, predicates);
843115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
844115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_1100");
845115cd2caSopenharmony_ci
846115cd2caSopenharmony_ci    updateValues.Clear();
847115cd2caSopenharmony_ci    updateValues.Put("favorite", "0");
848115cd2caSopenharmony_ci    updateCode = ContactUpdate(rawContacts, updateValues, predicates);
849115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
850115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_1100");
851115cd2caSopenharmony_ci
852115cd2caSopenharmony_ci    updateValues.Clear();
853115cd2caSopenharmony_ci    updateValues.Put("phonetic_name", "dongming||dm");
854115cd2caSopenharmony_ci    updateCode = ContactUpdate(rawContacts, updateValues, predicates);
855115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
856115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_1100");
857115cd2caSopenharmony_ci    ClearContacts();
858115cd2caSopenharmony_ci}
859115cd2caSopenharmony_ci
860115cd2caSopenharmony_ci/*
861115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1200
862115cd2caSopenharmony_ci * @tc.name    Modify the basic information of multiple contacts and verify whether the modification is successful
863115cd2caSopenharmony_ci * @tc.desc    Contacts basic data table update ability
864115cd2caSopenharmony_ci * @tc.level   Level1
865115cd2caSopenharmony_ci * @tc.size    MediumTest
866115cd2caSopenharmony_ci * @tc.type    Function
867115cd2caSopenharmony_ci */
868115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1200, testing::ext::TestSize.Level1)
869115cd2caSopenharmony_ci{
870115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1200 is starting! ---");
871115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
872115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("zhangming", values);
873115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
874115cd2caSopenharmony_ci    values.Clear();
875115cd2caSopenharmony_ci
876115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("ligang", values);
877115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
878115cd2caSopenharmony_ci    values.Clear();
879115cd2caSopenharmony_ci
880115cd2caSopenharmony_ci    int64_t rawContactIdThree = RawContactInsert("wanghong", values);
881115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdThree, 0);
882115cd2caSopenharmony_ci    values.Clear();
883115cd2caSopenharmony_ci
884115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
885115cd2caSopenharmony_ci    updateValues.Put("display_name", "dongming");
886115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
887115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdOne));
888115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
889115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
890115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
891115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_1200");
892115cd2caSopenharmony_ci
893115cd2caSopenharmony_ci    updateValues.Clear();
894115cd2caSopenharmony_ci    updateValues.Put("display_name", std::string("laoliu"));
895115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
896115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawContactIdThree));
897115cd2caSopenharmony_ci    updateCode = ContactUpdate(rawContacts, updateValues, predicates2);
898115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
899115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates2, updateValues, "contactProfile_Update_test_1200");
900115cd2caSopenharmony_ci    ClearContacts();
901115cd2caSopenharmony_ci}
902115cd2caSopenharmony_ci
903115cd2caSopenharmony_ci/*
904115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1300
905115cd2caSopenharmony_ci * @tc.name    Update the full field data of the raw_contact table and verify whether the modification is successful
906115cd2caSopenharmony_ci * @tc.desc    Support all raw_contact update capability
907115cd2caSopenharmony_ci * @tc.level   Level1
908115cd2caSopenharmony_ci * @tc.size    MediumTest
909115cd2caSopenharmony_ci * @tc.type    Function
910115cd2caSopenharmony_ci */
911115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1300, testing::ext::TestSize.Level1)
912115cd2caSopenharmony_ci{
913115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Update_test_1300 is starting!-----");
914115cd2caSopenharmony_ci    std::vector<std::string> columns;
915115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
916115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
917115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
918115cd2caSopenharmony_ci    GetAllRawContactColumns(columnsInt, columnsStr);
919115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
920115cd2caSopenharmony_ci    int rawId = RawContactInsertValues(valuesBucket);
921115cd2caSopenharmony_ci    EXPECT_GT(rawId, 0);
922115cd2caSopenharmony_ci
923115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
924115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
925115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawId));
926115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetOne = ContactQuery(rawContacts, columns, predicates);
927115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSetOne, "contactProfile_Update_test_1300");
928115cd2caSopenharmony_ci
929115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket upDateValuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
930115cd2caSopenharmony_ci    int upDateCode = ContactUpdate(rawContacts, upDateValuesBucket, predicates);
931115cd2caSopenharmony_ci    EXPECT_EQ(upDateCode, 0);
932115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
933115cd2caSopenharmony_ci
934115cd2caSopenharmony_ci    // resultSet count 1
935115cd2caSopenharmony_ci    int rowCount = -1;
936115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
937115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
938115cd2caSopenharmony_ci    CheckResultSet(upDateValuesBucket, resultSet, "contactProfile_Update_test_1300");
939115cd2caSopenharmony_ci    ClearContacts();
940115cd2caSopenharmony_ci}
941115cd2caSopenharmony_ci
942115cd2caSopenharmony_ci/*
943115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1400
944115cd2caSopenharmony_ci * @tc.name    Modify the details of a single contact and verify whether the modification is successful
945115cd2caSopenharmony_ci *              (name, company, position and email address)
946115cd2caSopenharmony_ci * @tc.desc    The ability to update the contact detail data table
947115cd2caSopenharmony_ci * @tc.level   Level1
948115cd2caSopenharmony_ci * @tc.size    MediumTest
949115cd2caSopenharmony_ci * @tc.type    Function
950115cd2caSopenharmony_ci */
951115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1400, testing::ext::TestSize.Level1)
952115cd2caSopenharmony_ci{
953115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1400 is starting! ---");
954115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
955115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("ligang", values);
956115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
957115cd2caSopenharmony_ci    values.Clear();
958115cd2caSopenharmony_ci
959115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesOne;
960115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "name", "ligang", "", valuesOne);
961115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
962115cd2caSopenharmony_ci
963115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesTwo;
964115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "organization", "tiantianxaingshang", "Test", valuesTwo);
965115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
966115cd2caSopenharmony_ci
967115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesThree;
968115cd2caSopenharmony_ci    int64_t contactDataIdThree = ContactDataInsert(rawContactId, "email", "8523@163.com", "", valuesThree);
969115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdThree, 0);
970115cd2caSopenharmony_ci
971115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
972115cd2caSopenharmony_ci    updateValues.Put("detail_info", "dongming");
973115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
974115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
975115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
976115cd2caSopenharmony_ci    int updateCode = ContactUpdate(contactData, updateValues, predicates);
977115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
978115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, updateValues, "contactProfile_Update_test_1400");
979115cd2caSopenharmony_ci
980115cd2caSopenharmony_ci    updateValues.Clear();
981115cd2caSopenharmony_ci    updateValues.Put("detail_info", "vivo");
982115cd2caSopenharmony_ci    updateValues.Put("position", "Developer");
983115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
984115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
985115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates2);
986115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
987115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, updateValues, "contactProfile_Update_test_1400");
988115cd2caSopenharmony_ci
989115cd2caSopenharmony_ci    updateValues.Clear();
990115cd2caSopenharmony_ci    updateValues.Put("detail_info", "1220369@qq.com");
991115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
992115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
993115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates3);
994115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
995115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, updateValues, "contactProfile_Update_test_1400");
996115cd2caSopenharmony_ci    ClearContacts();
997115cd2caSopenharmony_ci}
998115cd2caSopenharmony_ci
999115cd2caSopenharmony_ci/*
1000115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1500
1001115cd2caSopenharmony_ci * @tc.name    Modify the details of a single contact and verify that the modification is successful
1002115cd2caSopenharmony_ci *              (mobile phone number, address and nickname)
1003115cd2caSopenharmony_ci * @tc.desc    The ability to update the contact detail data table
1004115cd2caSopenharmony_ci * @tc.level   Level1
1005115cd2caSopenharmony_ci * @tc.size    MediumTest
1006115cd2caSopenharmony_ci * @tc.type    Function
1007115cd2caSopenharmony_ci */
1008115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1500, testing::ext::TestSize.Level1)
1009115cd2caSopenharmony_ci{
1010115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1500 is starting! ---");
1011115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1012115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaomi", rawContactValues);
1013115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1014115cd2caSopenharmony_ci
1015115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValueOne;
1016115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "phone", "1665230", "", contactDataValueOne);
1017115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
1018115cd2caSopenharmony_ci
1019115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValueTwo;
1020115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "nickname", "xiaomi", "", contactDataValueTwo);
1021115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
1022115cd2caSopenharmony_ci
1023115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValueThree;
1024115cd2caSopenharmony_ci    int64_t contactDataIdThree =
1025115cd2caSopenharmony_ci        ContactDataInsert(rawContactId, "postal_address", "BeiJingFir", "", contactDataValueThree);
1026115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdThree, 0);
1027115cd2caSopenharmony_ci
1028115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1029115cd2caSopenharmony_ci    updateValues.Put("detail_info", "33996652");
1030115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1031115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
1032115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1033115cd2caSopenharmony_ci    int updateCode = ContactUpdate(contactData, updateValues, predicates);
1034115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1500: updateCode = %{public}d", updateCode);
1035115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1036115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, updateValues, "contactProfile_Update_test_1500");
1037115cd2caSopenharmony_ci
1038115cd2caSopenharmony_ci    updateValues.Clear();
1039115cd2caSopenharmony_ci    updateValues.Put("detail_info", "mimi");
1040115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1041115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
1042115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates2);
1043115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1044115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, updateValues, "contactProfile_Update_test_1500");
1045115cd2caSopenharmony_ci
1046115cd2caSopenharmony_ci    updateValues.Clear();
1047115cd2caSopenharmony_ci    updateValues.Put("detail_info", "NanJIngGulou");
1048115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
1049115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
1050115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates3);
1051115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1052115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, updateValues, "contactProfile_Update_test_1500");
1053115cd2caSopenharmony_ci    ClearContacts();
1054115cd2caSopenharmony_ci}
1055115cd2caSopenharmony_ci
1056115cd2caSopenharmony_ci/*
1057115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1600
1058115cd2caSopenharmony_ci * @tc.name    Modify the details of individual contacts and verify whether the modification is successful
1059115cd2caSopenharmony_ci *              (remarks, goals and birthdays)
1060115cd2caSopenharmony_ci * @tc.desc    The ability to update the contact detail data table
1061115cd2caSopenharmony_ci * @tc.level   Level1
1062115cd2caSopenharmony_ci * @tc.size    MediumTest
1063115cd2caSopenharmony_ci * @tc.type    Function
1064115cd2caSopenharmony_ci */
1065115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1600, testing::ext::TestSize.Level1)
1066115cd2caSopenharmony_ci{
1067115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1600 is starting! ---");
1068115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1069115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaocai", rawContactValues);
1070115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1071115cd2caSopenharmony_ci
1072115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValueOne;
1073115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "note", "dalao", "", contactDataValueOne);
1074115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
1075115cd2caSopenharmony_ci
1076115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValueTwo;
1077115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "im", "aaaaaa", "", contactDataValueTwo);
1078115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
1079115cd2caSopenharmony_ci
1080115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValueThree;
1081115cd2caSopenharmony_ci    int64_t contactDataIdThree =
1082115cd2caSopenharmony_ci        ContactDataInsert(rawContactId, "contactProfile_event", "19820314", "", contactDataValueThree);
1083115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdThree, 0);
1084115cd2caSopenharmony_ci
1085115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1086115cd2caSopenharmony_ci    updateValues.Put("detail_info", "God");
1087115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1088115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
1089115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1090115cd2caSopenharmony_ci    int updateCode = ContactUpdate(contactData, updateValues, predicates);
1091115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1092115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, updateValues, "contactProfile_Update_test_1600");
1093115cd2caSopenharmony_ci
1094115cd2caSopenharmony_ci    updateValues.Clear();
1095115cd2caSopenharmony_ci    updateValues.Put("detail_info", "bcade");
1096115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1097115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
1098115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates2);
1099115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1600: updateCode = %{public}d", updateCode);
1100115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1101115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, updateValues, "contactProfile_Update_test_1600");
1102115cd2caSopenharmony_ci
1103115cd2caSopenharmony_ci    updateValues.Clear();
1104115cd2caSopenharmony_ci    updateValues.Put("detail_info", "19820328");
1105115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
1106115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
1107115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates3);
1108115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1600: updateCode = %{public}d", updateCode);
1109115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1110115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, updateValues, "contactProfile_Update_test_1600");
1111115cd2caSopenharmony_ci    ClearContacts();
1112115cd2caSopenharmony_ci}
1113115cd2caSopenharmony_ci
1114115cd2caSopenharmony_ci/*
1115115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1700
1116115cd2caSopenharmony_ci * @tc.name    Modify the details of a single contact and verify that the modification was successful
1117115cd2caSopenharmony_ci *              (URL, assistant, and group)
1118115cd2caSopenharmony_ci * @tc.desc    The ability to update the contact detail data table
1119115cd2caSopenharmony_ci * @tc.level   Level1
1120115cd2caSopenharmony_ci * @tc.size    MediumTest
1121115cd2caSopenharmony_ci * @tc.type    Function
1122115cd2caSopenharmony_ci */
1123115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1700, testing::ext::TestSize.Level1)
1124115cd2caSopenharmony_ci{
1125115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1700 is starting! ---");
1126115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1127115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaocai", rawContactValues);
1128115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1129115cd2caSopenharmony_ci
1130115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValuesOne;
1131115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "website", "www.aaa.com", "", contactValuesOne);
1132115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
1133115cd2caSopenharmony_ci
1134115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValuesTwo;
1135115cd2caSopenharmony_ci    int64_t contactDataIdTwo = ContactDataInsert(rawContactId, "relation", "fuzi", "", contactValuesTwo);
1136115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
1137115cd2caSopenharmony_ci
1138115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValuesThree;
1139115cd2caSopenharmony_ci    int64_t contactDataIdThree = ContactDataInsert(rawContactId, "group_membership", "1", "", contactValuesThree);
1140115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdThree, 0);
1141115cd2caSopenharmony_ci
1142115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1143115cd2caSopenharmony_ci    updateValues.Put("detail_info", "www.bbb.com");
1144115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1145115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
1146115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1147115cd2caSopenharmony_ci    int updateCode = ContactUpdate(contactData, updateValues, predicates);
1148115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1149115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, updateValues, "contactProfile_Update_test_1700");
1150115cd2caSopenharmony_ci
1151115cd2caSopenharmony_ci    updateValues.Clear();
1152115cd2caSopenharmony_ci    updateValues.Put("detail_info", "laozhang");
1153115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1154115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
1155115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates2);
1156115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1700: updateCode = %{public}d", updateCode);
1157115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1158115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, updateValues, "contactProfile_Update_test_1700");
1159115cd2caSopenharmony_ci
1160115cd2caSopenharmony_ci    updateValues.Clear();
1161115cd2caSopenharmony_ci    updateValues.Put("detail_info", "2");
1162115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
1163115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdThree));
1164115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates3);
1165115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1700: updateCode = %{public}d", updateCode);
1166115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1167115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates3, updateValues, "contactProfile_Update_test_1700");
1168115cd2caSopenharmony_ci    ClearContacts();
1169115cd2caSopenharmony_ci}
1170115cd2caSopenharmony_ci
1171115cd2caSopenharmony_ci/*
1172115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1800
1173115cd2caSopenharmony_ci * @tc.name    Modify the details of a single contact and verify that the modification was successful (phone ringing)
1174115cd2caSopenharmony_ci * @tc.desc    The ability to update the contact detail data table
1175115cd2caSopenharmony_ci * @tc.level   Level1
1176115cd2caSopenharmony_ci * @tc.size    MediumTest
1177115cd2caSopenharmony_ci * @tc.type    Function
1178115cd2caSopenharmony_ci */
1179115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1800, testing::ext::TestSize.Level1)
1180115cd2caSopenharmony_ci{
1181115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1800 is starting! ---");
1182115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1183115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaocai", rawContactValues);
1184115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1185115cd2caSopenharmony_ci
1186115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValues;
1187115cd2caSopenharmony_ci    int64_t contactDataIdOne = ContactDataInsert(rawContactId, "contactProfile_misc", "111", "", contactDataValues);
1188115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
1189115cd2caSopenharmony_ci
1190115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1191115cd2caSopenharmony_ci    updateValues.Put("detail_info", "222");
1192115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1193115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
1194115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1195115cd2caSopenharmony_ci    int updateCode = ContactUpdate(contactData, updateValues, predicates);
1196115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1800: updateCode = %{public}d", updateCode);
1197115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1198115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, updateValues, "contactProfile_Update_test_1800");
1199115cd2caSopenharmony_ci    ClearContacts();
1200115cd2caSopenharmony_ci}
1201115cd2caSopenharmony_ci
1202115cd2caSopenharmony_ci/*
1203115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_1900
1204115cd2caSopenharmony_ci * @tc.name    Modify multiple contact details and verify whether the modification is successful
1205115cd2caSopenharmony_ci * @tc.desc    The ability to update the contact detail data table
1206115cd2caSopenharmony_ci * @tc.level   Level1
1207115cd2caSopenharmony_ci * @tc.size    MediumTest
1208115cd2caSopenharmony_ci * @tc.type    Function
1209115cd2caSopenharmony_ci */
1210115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_1900, testing::ext::TestSize.Level1)
1211115cd2caSopenharmony_ci{
1212115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_1900 is starting! ---");
1213115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1214115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("ligang", rawContactValues);
1215115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
1216115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValues;
1217115cd2caSopenharmony_ci    int64_t contactDataId = ContactDataInsert(rawContactIdOne, "name", "ligang", "", contactValues);
1218115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
1219115cd2caSopenharmony_ci    contactValues.Clear();
1220115cd2caSopenharmony_ci
1221115cd2caSopenharmony_ci    contactDataId = ContactDataInsert(rawContactIdOne, "organization", "tiantianxaingshang", "Test", contactValues);
1222115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
1223115cd2caSopenharmony_ci    contactValues.Clear();
1224115cd2caSopenharmony_ci
1225115cd2caSopenharmony_ci    rawContactValues.Clear();
1226115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("zhangming", rawContactValues);
1227115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
1228115cd2caSopenharmony_ci
1229115cd2caSopenharmony_ci    contactDataId = ContactDataInsert(rawContactIdTwo, "name", "zhangming", "", contactValues);
1230115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
1231115cd2caSopenharmony_ci    contactValues.Clear();
1232115cd2caSopenharmony_ci
1233115cd2caSopenharmony_ci    contactDataId = ContactDataInsert(rawContactIdTwo, "organization", "tiantianxaingshang", "Test", contactValues);
1234115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
1235115cd2caSopenharmony_ci
1236115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1237115cd2caSopenharmony_ci    updateValues.Put("detail_info", "lixiang");
1238115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1239115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactIdOne));
1240115cd2caSopenharmony_ci    predicates.And();
1241115cd2caSopenharmony_ci    // type 6 is phone
1242115cd2caSopenharmony_ci    predicates.EqualTo("type_id", "6");
1243115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1244115cd2caSopenharmony_ci    int updateCode = ContactUpdate(contactData, updateValues, predicates);
1245115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1246115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, updateValues, "contactProfile_Update_test_1900");
1247115cd2caSopenharmony_ci
1248115cd2caSopenharmony_ci    updateValues.Clear();
1249115cd2caSopenharmony_ci    updateValues.Put("detail_info", "zhangsan");
1250115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1251115cd2caSopenharmony_ci    predicates2.EqualTo("raw_contact_id", std::to_string(rawContactIdTwo));
1252115cd2caSopenharmony_ci    predicates2.And();
1253115cd2caSopenharmony_ci    // type 6 is phone
1254115cd2caSopenharmony_ci    predicates2.EqualTo("type_id", "6");
1255115cd2caSopenharmony_ci    updateCode = ContactUpdate(contactData, updateValues, predicates2);
1256115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_1900: updateCode = %{public}d", updateCode);
1257115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1258115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, updateValues, "contactProfile_Update_test_1900");
1259115cd2caSopenharmony_ci    ClearContacts();
1260115cd2caSopenharmony_ci}
1261115cd2caSopenharmony_ci
1262115cd2caSopenharmony_ci/*
1263115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_2000
1264115cd2caSopenharmony_ci * @tc.name    Update the full field data of the contact_data table and verify whether the modification is successful
1265115cd2caSopenharmony_ci * @tc.desc    Update ability to contactProfile_data
1266115cd2caSopenharmony_ci * @tc.level   Level1
1267115cd2caSopenharmony_ci * @tc.size    MediumTest
1268115cd2caSopenharmony_ci * @tc.type    Function
1269115cd2caSopenharmony_ci */
1270115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_2000, testing::ext::TestSize.Level1)
1271115cd2caSopenharmony_ci{
1272115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Update_test_2000 is starting!-----");
1273115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
1274115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
1275115cd2caSopenharmony_ci    std::vector<std::string> columns;
1276115cd2caSopenharmony_ci    std::string tableName = ContactTabName::CONTACT_DATA;
1277115cd2caSopenharmony_ci    GetAllContactDataColumns(columnsInt, columnsStr);
1278115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
1279115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1280115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("feimaotui", rawContactValues);
1281115cd2caSopenharmony_ci    valuesBucket.Put("raw_contact_id", rawContactId);
1282115cd2caSopenharmony_ci    // type_id 6 is name
1283115cd2caSopenharmony_ci    valuesBucket.Put("type_id", 6);
1284115cd2caSopenharmony_ci    int ContactDataId = ContactDataInsertValues(valuesBucket);
1285115cd2caSopenharmony_ci    EXPECT_GT(ContactDataId, 0);
1286115cd2caSopenharmony_ci
1287115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
1288115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1289115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
1290115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket upDateValuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
1291115cd2caSopenharmony_ci
1292115cd2caSopenharmony_ci    int upDateCode = ContactUpdate(tableName, upDateValuesBucket, predicates);
1293115cd2caSopenharmony_ci    EXPECT_EQ(upDateCode, 0);
1294115cd2caSopenharmony_ci
1295115cd2caSopenharmony_ci    bool isValid = false;
1296115cd2caSopenharmony_ci    int versionCode = valuesBucket.Get("version", isValid);
1297115cd2caSopenharmony_ci    versionCode += 1;
1298115cd2caSopenharmony_ci    upDateValuesBucket.Put("version", versionCode);
1299115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(tableName, columns, predicates);
1300115cd2caSopenharmony_ci
1301115cd2caSopenharmony_ci    // resultSet count 1
1302115cd2caSopenharmony_ci    int rowCount = -1;
1303115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1304115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1305115cd2caSopenharmony_ci    CheckResultSet(upDateValuesBucket, resultSet, "contactProfile_Update_test_2000");
1306115cd2caSopenharmony_ci    ClearContacts();
1307115cd2caSopenharmony_ci}
1308115cd2caSopenharmony_ci
1309115cd2caSopenharmony_ci/*
1310115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_2100
1311115cd2caSopenharmony_ci * @tc.name    Update all contact details and verify that the modification was successful
1312115cd2caSopenharmony_ci * @tc.desc    New ability to contact detailed data
1313115cd2caSopenharmony_ci * @tc.level   Level1
1314115cd2caSopenharmony_ci * @tc.size    MediumTest
1315115cd2caSopenharmony_ci * @tc.type    Function
1316115cd2caSopenharmony_ci */
1317115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_2100, testing::ext::TestSize.Level1)
1318115cd2caSopenharmony_ci{
1319115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_2100 is starting! ---");
1320115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawValuesBucket;
1321115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("update_detail_contactdata", rawValuesBucket);
1322115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1323115cd2caSopenharmony_ci
1324115cd2caSopenharmony_ci    std::vector<std::string> columns;
1325115cd2caSopenharmony_ci    std::vector<std::string> columnQuery;
1326115cd2caSopenharmony_ci    columnQuery.push_back("detail_info");
1327115cd2caSopenharmony_ci    GetDetailsContactDataColumns(columns);
1328115cd2caSopenharmony_ci
1329115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket;
1330115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket upDateValuesBucket;
1331115cd2caSopenharmony_ci
1332115cd2caSopenharmony_ci    std::string randomStr = "";
1333115cd2caSopenharmony_ci    std::string updateStrValue = "";
1334115cd2caSopenharmony_ci    std::string tableName = ContactTabName::CONTACT_DATA;
1335115cd2caSopenharmony_ci    int columnSize = columns.size();
1336115cd2caSopenharmony_ci    for (int i = 0; i < columnSize; i++) {
1337115cd2caSopenharmony_ci        randomStr = columns[i] + std::to_string(ContactsRand());
1338115cd2caSopenharmony_ci        valuesBucket.Put("raw_contact_id", rawContactId);
1339115cd2caSopenharmony_ci        valuesBucket.Put("content_type", columns[i]);
1340115cd2caSopenharmony_ci        valuesBucket.Put("detail_info", randomStr);
1341115cd2caSopenharmony_ci        int contactDataId = ContactDataInsertValues(valuesBucket);
1342115cd2caSopenharmony_ci        EXPECT_GT(contactDataId, 0);
1343115cd2caSopenharmony_ci
1344115cd2caSopenharmony_ci        OHOS::DataShare::DataSharePredicates predicates;
1345115cd2caSopenharmony_ci        predicates.EqualTo("id", std::to_string(contactDataId));
1346115cd2caSopenharmony_ci        updateStrValue = "update_all" + randomStr;
1347115cd2caSopenharmony_ci        upDateValuesBucket.Put("detail_info", updateStrValue);
1348115cd2caSopenharmony_ci        int upDateCode = ContactUpdate(tableName, upDateValuesBucket, predicates);
1349115cd2caSopenharmony_ci        EXPECT_EQ(upDateCode, 0);
1350115cd2caSopenharmony_ci
1351115cd2caSopenharmony_ci        std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
1352115cd2caSopenharmony_ci            ContactQuery(tableName, columnQuery, predicates);
1353115cd2caSopenharmony_ci        int rowCount = -1;
1354115cd2caSopenharmony_ci        resultSet->GetRowCount(rowCount);
1355115cd2caSopenharmony_ci        EXPECT_EQ(1, rowCount);
1356115cd2caSopenharmony_ci        CheckResultSet(upDateValuesBucket, resultSet, "contactProfile_Update_test_2100");
1357115cd2caSopenharmony_ci
1358115cd2caSopenharmony_ci        valuesBucket.Clear();
1359115cd2caSopenharmony_ci        upDateValuesBucket.Clear();
1360115cd2caSopenharmony_ci    }
1361115cd2caSopenharmony_ci    ClearContacts();
1362115cd2caSopenharmony_ci}
1363115cd2caSopenharmony_ci
1364115cd2caSopenharmony_ci/*
1365115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_2200
1366115cd2caSopenharmony_ci * @tc.name    Add a single contact to your favorites and verify that the favorites field has changed
1367115cd2caSopenharmony_ci * @tc.desc    Contacts favorites and unfavorite capabilities
1368115cd2caSopenharmony_ci * @tc.level   Level1
1369115cd2caSopenharmony_ci * @tc.size    MediumTest
1370115cd2caSopenharmony_ci * @tc.type    Function
1371115cd2caSopenharmony_ci */
1372115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_2200, testing::ext::TestSize.Level1)
1373115cd2caSopenharmony_ci{
1374115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_2200 is starting! ---");
1375115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1376115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaozong", rawContactValues);
1377115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1378115cd2caSopenharmony_ci
1379115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1380115cd2caSopenharmony_ci    updateValues.Put("favorite", 1);
1381115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1382115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
1383115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
1384115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
1385115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1386115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_2200");
1387115cd2caSopenharmony_ci    ClearContacts();
1388115cd2caSopenharmony_ci}
1389115cd2caSopenharmony_ci
1390115cd2caSopenharmony_ci/*
1391115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_2300
1392115cd2caSopenharmony_ci * @tc.name    Add multiple contacts to favorites and verify that the favorites field is changed
1393115cd2caSopenharmony_ci * @tc.desc    Contacts favorites and unfavorite capabilities
1394115cd2caSopenharmony_ci * @tc.level   Level1
1395115cd2caSopenharmony_ci * @tc.size    MediumTest
1396115cd2caSopenharmony_ci * @tc.type    Function
1397115cd2caSopenharmony_ci */
1398115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_2300, testing::ext::TestSize.Level1)
1399115cd2caSopenharmony_ci{
1400115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_2300 is starting! ---");
1401115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1402115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("xiaowang", rawContactValues);
1403115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
1404115cd2caSopenharmony_ci
1405115cd2caSopenharmony_ci    rawContactValues.Clear();
1406115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("xiaozhou", rawContactValues);
1407115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
1408115cd2caSopenharmony_ci    rawContactValues.Clear();
1409115cd2caSopenharmony_ci    int64_t rawContactIdThree = RawContactInsert("laowei", rawContactValues);
1410115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdThree, 0);
1411115cd2caSopenharmony_ci
1412115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1413115cd2caSopenharmony_ci    updateValues.Put("favorite", 1);
1414115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1415115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdOne));
1416115cd2caSopenharmony_ci    predicates.Or();
1417115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdTwo));
1418115cd2caSopenharmony_ci    predicates.Or();
1419115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdThree));
1420115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
1421115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
1422115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1423115cd2caSopenharmony_ci
1424115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1425115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawContactIdOne));
1426115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates2, updateValues, "contactProfile_Update_test_2300");
1427115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
1428115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(rawContactIdTwo));
1429115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates3, updateValues, "contactProfile_Update_test_2300");
1430115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates4;
1431115cd2caSopenharmony_ci    predicates4.EqualTo("id", std::to_string(rawContactIdThree));
1432115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates4, updateValues, "contactProfile_Update_test_2300");
1433115cd2caSopenharmony_ci    ClearContacts();
1434115cd2caSopenharmony_ci}
1435115cd2caSopenharmony_ci
1436115cd2caSopenharmony_ci/*
1437115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_2400
1438115cd2caSopenharmony_ci * @tc.name    Unfriend individual contacts and verify that the favorites field has changed
1439115cd2caSopenharmony_ci * @tc.desc    Contacts favorites and unfavorite capabilities
1440115cd2caSopenharmony_ci * @tc.level   Level1
1441115cd2caSopenharmony_ci * @tc.size    MediumTest
1442115cd2caSopenharmony_ci * @tc.type    Function
1443115cd2caSopenharmony_ci */
1444115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_2400, testing::ext::TestSize.Level1)
1445115cd2caSopenharmony_ci{
1446115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_2400 is starting! ---");
1447115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1448115cd2caSopenharmony_ci    std::vector<std::string> vectorValue;
1449115cd2caSopenharmony_ci    vectorValue.push_back("zhangming");
1450115cd2caSopenharmony_ci    vectorValue.push_back("tiantianxaingshang");
1451115cd2caSopenharmony_ci    vectorValue.push_back("Test");
1452115cd2caSopenharmony_ci    vectorValue.push_back("zhangming||zm");
1453115cd2caSopenharmony_ci    int64_t rawContactId = RawContactExpandInsert(vectorValue, 1, values);
1454115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1455115cd2caSopenharmony_ci
1456115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1457115cd2caSopenharmony_ci    updateValues.Put("favorite", 0);
1458115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1459115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
1460115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
1461115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
1462115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1463115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, updateValues, "contactProfile_Update_test_2400");
1464115cd2caSopenharmony_ci    ClearContacts();
1465115cd2caSopenharmony_ci}
1466115cd2caSopenharmony_ci
1467115cd2caSopenharmony_ci/*
1468115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_2500
1469115cd2caSopenharmony_ci * @tc.name    Remove favorites from multiple contacts and verify that the favorites field has changed
1470115cd2caSopenharmony_ci * @tc.desc    Contacts favorites and unfavorite capabilities
1471115cd2caSopenharmony_ci * @tc.level   Level1
1472115cd2caSopenharmony_ci * @tc.size    MediumTest
1473115cd2caSopenharmony_ci * @tc.type    Function
1474115cd2caSopenharmony_ci */
1475115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_2500, testing::ext::TestSize.Level1)
1476115cd2caSopenharmony_ci{
1477115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_2500 is starting! ---");
1478115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1479115cd2caSopenharmony_ci    std::vector<std::string> vectorValue;
1480115cd2caSopenharmony_ci    vectorValue.push_back("zhangming");
1481115cd2caSopenharmony_ci    vectorValue.push_back("tiantianxaingshang");
1482115cd2caSopenharmony_ci    vectorValue.push_back("Test");
1483115cd2caSopenharmony_ci    vectorValue.push_back("zhangming||zm");
1484115cd2caSopenharmony_ci    int64_t rawContactId = RawContactExpandInsert(vectorValue, 1, values);
1485115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1486115cd2caSopenharmony_ci
1487115cd2caSopenharmony_ci    vectorValue.clear();
1488115cd2caSopenharmony_ci    values.Clear();
1489115cd2caSopenharmony_ci    vectorValue.push_back("laozhou");
1490115cd2caSopenharmony_ci    vectorValue.push_back("tiantianxaingshang");
1491115cd2caSopenharmony_ci    vectorValue.push_back("Test");
1492115cd2caSopenharmony_ci    vectorValue.push_back("laozhou||lz");
1493115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactExpandInsert(vectorValue, 1, values);
1494115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
1495115cd2caSopenharmony_ci
1496115cd2caSopenharmony_ci    vectorValue.clear();
1497115cd2caSopenharmony_ci    values.Clear();
1498115cd2caSopenharmony_ci    vectorValue.push_back("abiao");
1499115cd2caSopenharmony_ci    vectorValue.push_back("tiantianxaingshang");
1500115cd2caSopenharmony_ci    vectorValue.push_back("Test");
1501115cd2caSopenharmony_ci    vectorValue.push_back("abiao||ab");
1502115cd2caSopenharmony_ci    int64_t rawContactIdThree = RawContactExpandInsert(vectorValue, 1, values);
1503115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_2500 : rawContactIdThree = %{public}ld", rawContactIdThree);
1504115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdThree, 0);
1505115cd2caSopenharmony_ci
1506115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1507115cd2caSopenharmony_ci    updateValues.Put("favorite", 0);
1508115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1509115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
1510115cd2caSopenharmony_ci    predicates.Or();
1511115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdTwo));
1512115cd2caSopenharmony_ci    predicates.Or();
1513115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdThree));
1514115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
1515115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
1516115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1517115cd2caSopenharmony_ci
1518115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1519115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawContactId));
1520115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates2, updateValues, "contactProfile_Update_test_2500");
1521115cd2caSopenharmony_ci
1522115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
1523115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(rawContactIdTwo));
1524115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates3, updateValues, "contactProfile_Update_test_2500");
1525115cd2caSopenharmony_ci
1526115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates4;
1527115cd2caSopenharmony_ci    predicates4.EqualTo("id", std::to_string(rawContactIdThree));
1528115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates4, updateValues, "contactProfile_Update_test_2500");
1529115cd2caSopenharmony_ci    ClearContacts();
1530115cd2caSopenharmony_ci}
1531115cd2caSopenharmony_ci
1532115cd2caSopenharmony_ci/*
1533115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_2600
1534115cd2caSopenharmony_ci * @tc.name    Add a single record to the blocklist and verify that the insertion was successful
1535115cd2caSopenharmony_ci * @tc.desc    The ability to add and remove contacts from the blocklist
1536115cd2caSopenharmony_ci * @tc.level   Level1
1537115cd2caSopenharmony_ci * @tc.size    MediumTest
1538115cd2caSopenharmony_ci * @tc.type    Function
1539115cd2caSopenharmony_ci */
1540115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_2600, testing::ext::TestSize.Level1)
1541115cd2caSopenharmony_ci{
1542115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_2600 is starting! ---");
1543115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket blocklistValues;
1544115cd2caSopenharmony_ci    int64_t blocklistId = ContactBlocklistInsert("10086", blocklistValues);
1545115cd2caSopenharmony_ci    EXPECT_GT(blocklistId, 0);
1546115cd2caSopenharmony_ci
1547115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1548115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(blocklistId));
1549115cd2caSopenharmony_ci    std::string contactBlocklist = ContactTabName::CONTACT_BLOCKLIST;
1550115cd2caSopenharmony_ci    QueryAndExpectResult(contactBlocklist, predicates, blocklistValues, "contactProfile_Insert_test_2600");
1551115cd2caSopenharmony_ci    ClearContacts();
1552115cd2caSopenharmony_ci}
1553115cd2caSopenharmony_ci
1554115cd2caSopenharmony_ci/*
1555115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_2700
1556115cd2caSopenharmony_ci * @tc.name    Add multiple records to the blocklist and verify whether the insertion is successful
1557115cd2caSopenharmony_ci * @tc.desc    The ability to add and remove contacts from the blocklist
1558115cd2caSopenharmony_ci * @tc.level   Level1
1559115cd2caSopenharmony_ci * @tc.size    MediumTest
1560115cd2caSopenharmony_ci * @tc.type    Function
1561115cd2caSopenharmony_ci */
1562115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_2700, testing::ext::TestSize.Level1)
1563115cd2caSopenharmony_ci{
1564115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_2700 is starting! ---");
1565115cd2caSopenharmony_ci    std::string contactBlocklist = ContactTabName::CONTACT_BLOCKLIST;
1566115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket blocklistValues;
1567115cd2caSopenharmony_ci    int64_t blocklistIdOne = ContactBlocklistInsert("188520", blocklistValues);
1568115cd2caSopenharmony_ci    EXPECT_GT(blocklistIdOne, 0);
1569115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1570115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(blocklistIdOne));
1571115cd2caSopenharmony_ci    QueryAndExpectResult(contactBlocklist, predicates, blocklistValues, "contactProfile_Insert_test_2700");
1572115cd2caSopenharmony_ci
1573115cd2caSopenharmony_ci    blocklistValues.Clear();
1574115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1575115cd2caSopenharmony_ci    int64_t blocklistIdTwo = ContactBlocklistInsert("130269", blocklistValues);
1576115cd2caSopenharmony_ci    EXPECT_GT(blocklistIdTwo, 0);
1577115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(blocklistIdTwo));
1578115cd2caSopenharmony_ci    QueryAndExpectResult(contactBlocklist, predicates2, blocklistValues, "contactProfile_Insert_test_2700");
1579115cd2caSopenharmony_ci
1580115cd2caSopenharmony_ci    blocklistValues.Clear();
1581115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
1582115cd2caSopenharmony_ci    int64_t blocklistIdThree = ContactBlocklistInsert("772501", blocklistValues);
1583115cd2caSopenharmony_ci    EXPECT_GT(blocklistIdThree, 0);
1584115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(blocklistIdThree));
1585115cd2caSopenharmony_ci    QueryAndExpectResult(contactBlocklist, predicates3, blocklistValues, "contactProfile_Insert_test_2700");
1586115cd2caSopenharmony_ci    ClearContacts();
1587115cd2caSopenharmony_ci}
1588115cd2caSopenharmony_ci
1589115cd2caSopenharmony_ci/*
1590115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_2800
1591115cd2caSopenharmony_ci * @tc.name    Add a full field data to the contact_blocklist table and verify whether the insertion is successful
1592115cd2caSopenharmony_ci * @tc.desc    Added ability to ContactBlocklist
1593115cd2caSopenharmony_ci * @tc.level   Level1
1594115cd2caSopenharmony_ci * @tc.size    MediumTest
1595115cd2caSopenharmony_ci * @tc.type    Function
1596115cd2caSopenharmony_ci */
1597115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_2800, testing::ext::TestSize.Level1)
1598115cd2caSopenharmony_ci{
1599115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Insert_test_2800 is starting!-----");
1600115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
1601115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
1602115cd2caSopenharmony_ci    std::vector<std::string> columns;
1603115cd2caSopenharmony_ci    std::string tableName = ContactTabName::CONTACT_BLOCKLIST;
1604115cd2caSopenharmony_ci    GetAllContactBlocklistColumns(columnsInt, columnsStr);
1605115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
1606115cd2caSopenharmony_ci    int contactBlockId = ContactBlocklistInsertValues(valuesBucket);
1607115cd2caSopenharmony_ci    EXPECT_GT(contactBlockId, 0);
1608115cd2caSopenharmony_ci
1609115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
1610115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1611115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactBlockId));
1612115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(tableName, columns, predicates);
1613115cd2caSopenharmony_ci    // resultSet count 1
1614115cd2caSopenharmony_ci    int rowCount = -1;
1615115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1616115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1617115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Insert_test_2800");
1618115cd2caSopenharmony_ci    ClearContacts();
1619115cd2caSopenharmony_ci}
1620115cd2caSopenharmony_ci
1621115cd2caSopenharmony_ci/*
1622115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_2900
1623115cd2caSopenharmony_ci * @tc.name    Delete a contact from the blocklist and verify whether the deletion is successful
1624115cd2caSopenharmony_ci * @tc.desc    The ability to add and remove contacts from the blocklist
1625115cd2caSopenharmony_ci * @tc.level   Level1
1626115cd2caSopenharmony_ci * @tc.size    MediumTest
1627115cd2caSopenharmony_ci * @tc.type    Function
1628115cd2caSopenharmony_ci */
1629115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_2900, testing::ext::TestSize.Level1)
1630115cd2caSopenharmony_ci{
1631115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_2900 is starting! ---");
1632115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket blocklistValues;
1633115cd2caSopenharmony_ci    int64_t blocklistId = ContactBlocklistInsert("147852369", blocklistValues);
1634115cd2caSopenharmony_ci    EXPECT_GT(blocklistId, 0);
1635115cd2caSopenharmony_ci
1636115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1637115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(blocklistId));
1638115cd2caSopenharmony_ci    std::string contactBlocklist = ContactTabName::CONTACT_BLOCKLIST;
1639115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactBlocklist, predicates);
1640115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
1641115cd2caSopenharmony_ci    std::vector<std::string> columns;
1642115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
1643115cd2caSopenharmony_ci        ContactQuery(contactBlocklist, columns, predicates);
1644115cd2caSopenharmony_ci    int rowCount = 0;
1645115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1646115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1647115cd2caSopenharmony_ci    resultSet->Close();
1648115cd2caSopenharmony_ci    ClearContacts();
1649115cd2caSopenharmony_ci}
1650115cd2caSopenharmony_ci
1651115cd2caSopenharmony_ci/*
1652115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_3000
1653115cd2caSopenharmony_ci * @tc.name    Delete multiple contacts from the blocklist and verify whether the deletion is successful
1654115cd2caSopenharmony_ci * @tc.desc    The ability to add and remove contacts from the blocklist
1655115cd2caSopenharmony_ci * @tc.level   Level1
1656115cd2caSopenharmony_ci * @tc.size    MediumTest
1657115cd2caSopenharmony_ci * @tc.type    Function
1658115cd2caSopenharmony_ci */
1659115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_3000, testing::ext::TestSize.Level1)
1660115cd2caSopenharmony_ci{
1661115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_3000 is starting! ---");
1662115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket blocklistValues;
1663115cd2caSopenharmony_ci    int64_t blocklistIdOne = ContactBlocklistInsert("111228855", blocklistValues);
1664115cd2caSopenharmony_ci    EXPECT_GT(blocklistIdOne, 0);
1665115cd2caSopenharmony_ci
1666115cd2caSopenharmony_ci    blocklistValues.Clear();
1667115cd2caSopenharmony_ci    int64_t blocklistIdTwo = ContactBlocklistInsert("11335566", blocklistValues);
1668115cd2caSopenharmony_ci    EXPECT_GT(blocklistIdTwo, 0);
1669115cd2caSopenharmony_ci
1670115cd2caSopenharmony_ci    blocklistValues.Clear();
1671115cd2caSopenharmony_ci    int64_t blocklistIdThree = ContactBlocklistInsert("9933220011", blocklistValues);
1672115cd2caSopenharmony_ci    EXPECT_GT(blocklistIdThree, 0);
1673115cd2caSopenharmony_ci
1674115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1675115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(blocklistIdOne));
1676115cd2caSopenharmony_ci    predicates.Or();
1677115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(blocklistIdTwo));
1678115cd2caSopenharmony_ci    predicates.Or();
1679115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(blocklistIdThree));
1680115cd2caSopenharmony_ci    std::string contactBlocklist = ContactTabName::CONTACT_BLOCKLIST;
1681115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactBlocklist, predicates);
1682115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
1683115cd2caSopenharmony_ci
1684115cd2caSopenharmony_ci    std::vector<std::string> columns;
1685115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
1686115cd2caSopenharmony_ci        ContactQuery(contactBlocklist, columns, predicates);
1687115cd2caSopenharmony_ci    int rowCount = 0;
1688115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1689115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1690115cd2caSopenharmony_ci    resultSet->Close();
1691115cd2caSopenharmony_ci    ClearContacts();
1692115cd2caSopenharmony_ci}
1693115cd2caSopenharmony_ci
1694115cd2caSopenharmony_ci/*
1695115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_3100
1696115cd2caSopenharmony_ci * @tc.name    Delete a full field data of contact_blocklist table and verify whether the deletion is successful
1697115cd2caSopenharmony_ci * @tc.desc    ContactBlocklist deletion capability
1698115cd2caSopenharmony_ci * @tc.level   Level1
1699115cd2caSopenharmony_ci * @tc.size    MediumTest
1700115cd2caSopenharmony_ci * @tc.type    Function
1701115cd2caSopenharmony_ci */
1702115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_3100, testing::ext::TestSize.Level1)
1703115cd2caSopenharmony_ci{
1704115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Delete_test_3100 is starting!-----");
1705115cd2caSopenharmony_ci    // insert
1706115cd2caSopenharmony_ci    std::vector<std::string> columns;
1707115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
1708115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
1709115cd2caSopenharmony_ci    GetAllContactBlocklistColumns(columnsInt, columnsStr);
1710115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
1711115cd2caSopenharmony_ci    int contacBlockId = ContactBlocklistInsertValues(valuesBucket);
1712115cd2caSopenharmony_ci    EXPECT_GT(contacBlockId, 0);
1713115cd2caSopenharmony_ci
1714115cd2caSopenharmony_ci    // test end delete data
1715115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1716115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contacBlockId));
1717115cd2caSopenharmony_ci    std::string tableName = ContactTabName::CONTACT_BLOCKLIST;
1718115cd2caSopenharmony_ci    int deleteCode = ContactDelete(tableName, predicates);
1719115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
1720115cd2caSopenharmony_ci
1721115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
1722115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetDeleteQuery =
1723115cd2caSopenharmony_ci        ContactQuery(tableName, columns, predicates);
1724115cd2caSopenharmony_ci    int rowCount = -1;
1725115cd2caSopenharmony_ci    resultSetDeleteQuery->GetRowCount(rowCount);
1726115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1727115cd2caSopenharmony_ci    ClearContacts();
1728115cd2caSopenharmony_ci}
1729115cd2caSopenharmony_ci
1730115cd2caSopenharmony_ci/*
1731115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_3200
1732115cd2caSopenharmony_ci * @tc.name    Join a single contact to the group and verify whether the join is successful
1733115cd2caSopenharmony_ci * @tc.desc    Ability to add and remove contacts from groups
1734115cd2caSopenharmony_ci * @tc.level   Level1
1735115cd2caSopenharmony_ci * @tc.size    MediumTest
1736115cd2caSopenharmony_ci * @tc.type    Function
1737115cd2caSopenharmony_ci */
1738115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_3200, testing::ext::TestSize.Level1)
1739115cd2caSopenharmony_ci{
1740115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_3200 is staring! ---");
1741115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1742115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaoli", rawContactValues);
1743115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1744115cd2caSopenharmony_ci
1745115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket groupValues;
1746115cd2caSopenharmony_ci    int64_t groupId = GroupsInsert("TestFirstGroup", groupValues);
1747115cd2caSopenharmony_ci    EXPECT_GT(groupId, 0);
1748115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValue;
1749115cd2caSopenharmony_ci    int64_t contactDataId =
1750115cd2caSopenharmony_ci        ContactDataInsert(rawContactId, "group_membership", std::to_string(groupId), "", contactDataValue);
1751115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
1752115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1753115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataId));
1754115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1755115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, contactDataValue, "contactProfile_Insert_test_3200");
1756115cd2caSopenharmony_ci    ClearContacts();
1757115cd2caSopenharmony_ci}
1758115cd2caSopenharmony_ci
1759115cd2caSopenharmony_ci/*
1760115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_3300
1761115cd2caSopenharmony_ci * @tc.name    Multiple contacts join the group and verify whether the joining is successful
1762115cd2caSopenharmony_ci * @tc.desc    Ability to add and remove contacts from groups
1763115cd2caSopenharmony_ci * @tc.level   Level1
1764115cd2caSopenharmony_ci * @tc.size    MediumTest
1765115cd2caSopenharmony_ci * @tc.type    Function
1766115cd2caSopenharmony_ci */
1767115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_3300, testing::ext::TestSize.Level1)
1768115cd2caSopenharmony_ci{
1769115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Insert_test_3300 is staring! ---");
1770115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket groupValues;
1771115cd2caSopenharmony_ci    int64_t groupIdOne = GroupsInsert("TestSecondGroup", groupValues);
1772115cd2caSopenharmony_ci    EXPECT_GT(groupIdOne, 0);
1773115cd2caSopenharmony_ci    groupValues.Clear();
1774115cd2caSopenharmony_ci
1775115cd2caSopenharmony_ci    int64_t groupIdTwo = GroupsInsert("DeveloperFirstGroup", groupValues);
1776115cd2caSopenharmony_ci    EXPECT_GT(groupIdTwo, 0);
1777115cd2caSopenharmony_ci
1778115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1779115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("xiaoli", rawContactValues);
1780115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
1781115cd2caSopenharmony_ci    rawContactValues.Clear();
1782115cd2caSopenharmony_ci
1783115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("BossCai", rawContactValues);
1784115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
1785115cd2caSopenharmony_ci
1786115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesOne;
1787115cd2caSopenharmony_ci    int64_t contactDataIdOne =
1788115cd2caSopenharmony_ci        ContactDataInsert(rawContactIdOne, "group_membership", std::to_string(groupIdOne), "", contactDataValuesOne);
1789115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
1790115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1791115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1792115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
1793115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates, contactDataValuesOne, "contactProfile_Insert_test_3300");
1794115cd2caSopenharmony_ci
1795115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesTwo;
1796115cd2caSopenharmony_ci    int64_t contactDataIdTwo =
1797115cd2caSopenharmony_ci        ContactDataInsert(rawContactIdTwo, "group_membership", std::to_string(groupIdTwo), "", contactDataValuesTwo);
1798115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
1799115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1800115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdTwo));
1801115cd2caSopenharmony_ci    QueryAndExpectResult(contactData, predicates2, contactDataValuesTwo, "contactProfile_Insert_test_3300");
1802115cd2caSopenharmony_ci    ClearContacts();
1803115cd2caSopenharmony_ci}
1804115cd2caSopenharmony_ci
1805115cd2caSopenharmony_ci/*
1806115cd2caSopenharmony_ci * @tc.number  contactProfile_Insert_test_3400
1807115cd2caSopenharmony_ci * @tc.name    Add a full field data to the groups table and verify whether the insertion is successful
1808115cd2caSopenharmony_ci * @tc.desc    Added ability to groups
1809115cd2caSopenharmony_ci * @tc.level   Level1
1810115cd2caSopenharmony_ci * @tc.size    MediumTest
1811115cd2caSopenharmony_ci * @tc.type    Function
1812115cd2caSopenharmony_ci */
1813115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Insert_test_3400, testing::ext::TestSize.Level1)
1814115cd2caSopenharmony_ci{
1815115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Insert_test_3400 is starting!-----");
1816115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
1817115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
1818115cd2caSopenharmony_ci    std::vector<std::string> columns;
1819115cd2caSopenharmony_ci    std::string group = ContactTabName::GROUPS;
1820115cd2caSopenharmony_ci    GetAllGroupsColumns(columnsInt, columnsStr);
1821115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
1822115cd2caSopenharmony_ci    int rawId = GroupsInsertValues(valuesBucket);
1823115cd2caSopenharmony_ci    EXPECT_GT(rawId, 0);
1824115cd2caSopenharmony_ci
1825115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
1826115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1827115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawId));
1828115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(group, columns, predicates);
1829115cd2caSopenharmony_ci    // resultSet count 1
1830115cd2caSopenharmony_ci    int rowCount = -1;
1831115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1832115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1833115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Insert_test_3400");
1834115cd2caSopenharmony_ci    ClearContacts();
1835115cd2caSopenharmony_ci}
1836115cd2caSopenharmony_ci
1837115cd2caSopenharmony_ci/*
1838115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_3500
1839115cd2caSopenharmony_ci * @tc.name    Delete a single contact from the group and verify that the deletion was successful
1840115cd2caSopenharmony_ci * @tc.desc    Ability to add and remove contacts from groups
1841115cd2caSopenharmony_ci * @tc.level   Level1
1842115cd2caSopenharmony_ci * @tc.size    MediumTest
1843115cd2caSopenharmony_ci * @tc.type    Function
1844115cd2caSopenharmony_ci */
1845115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_3500, testing::ext::TestSize.Level1)
1846115cd2caSopenharmony_ci{
1847115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_3500 is starting! ---");
1848115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket groupValues;
1849115cd2caSopenharmony_ci    int64_t groupId = GroupsInsert("CEO", groupValues);
1850115cd2caSopenharmony_ci    EXPECT_GT(groupId, 0);
1851115cd2caSopenharmony_ci
1852115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1853115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaoli", rawContactValues);
1854115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
1855115cd2caSopenharmony_ci
1856115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValues;
1857115cd2caSopenharmony_ci    int64_t contactDataId =
1858115cd2caSopenharmony_ci        ContactDataInsert(rawContactId, "group_membership", std::to_string(groupId), "", contactDataValues);
1859115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
1860115cd2caSopenharmony_ci
1861115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1862115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1863115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
1864115cd2caSopenharmony_ci    predicates.And();
1865115cd2caSopenharmony_ci    // type_id 9  is group_membership
1866115cd2caSopenharmony_ci    predicates.EqualTo("type_id", "9");
1867115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactData, predicates);
1868115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
1869115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1870115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataId));
1871115cd2caSopenharmony_ci    std::vector<std::string> columns;
1872115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates2);
1873115cd2caSopenharmony_ci    int rowCount = 0;
1874115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1875115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1876115cd2caSopenharmony_ci    resultSet->Close();
1877115cd2caSopenharmony_ci    ClearContacts();
1878115cd2caSopenharmony_ci}
1879115cd2caSopenharmony_ci
1880115cd2caSopenharmony_ci/*
1881115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_3600
1882115cd2caSopenharmony_ci * @tc.name    Delete multiple contacts from the group and verify that the deletion was successful
1883115cd2caSopenharmony_ci * @tc.desc    Ability to add and remove contacts from groups
1884115cd2caSopenharmony_ci * @tc.level   Level1
1885115cd2caSopenharmony_ci * @tc.size    MediumTest
1886115cd2caSopenharmony_ci * @tc.type    Function
1887115cd2caSopenharmony_ci */
1888115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_3600, testing::ext::TestSize.Level1)
1889115cd2caSopenharmony_ci{
1890115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_3600 is starting! ---");
1891115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket groupValues;
1892115cd2caSopenharmony_ci    int64_t groupIdOne = GroupsInsert("Test", groupValues);
1893115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Delete_test_3600: groupIdOne = %{public}ld", groupIdOne);
1894115cd2caSopenharmony_ci    EXPECT_GT(groupIdOne, 0);
1895115cd2caSopenharmony_ci
1896115cd2caSopenharmony_ci    groupValues.Clear();
1897115cd2caSopenharmony_ci    int64_t groupIdTwo = GroupsInsert("Developer", groupValues);
1898115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Delete_test_3600: groupIdTwo = %{public}ld", groupIdTwo);
1899115cd2caSopenharmony_ci    EXPECT_GT(groupIdTwo, 0);
1900115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
1901115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("xiaoli", rawContactValues);
1902115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
1903115cd2caSopenharmony_ci
1904115cd2caSopenharmony_ci    rawContactValues.Clear();
1905115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("xiaoyuan", rawContactValues);
1906115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
1907115cd2caSopenharmony_ci
1908115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValues;
1909115cd2caSopenharmony_ci    int64_t contactDataIdOne =
1910115cd2caSopenharmony_ci        ContactDataInsert(rawContactIdOne, "group_membership", std::to_string(groupIdOne), "", contactDataValues);
1911115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdOne, 0);
1912115cd2caSopenharmony_ci
1913115cd2caSopenharmony_ci    contactDataValues.Clear();
1914115cd2caSopenharmony_ci    int64_t contactDataIdTwo =
1915115cd2caSopenharmony_ci        ContactDataInsert(rawContactIdTwo, "group_membership", std::to_string(groupIdTwo), "", contactDataValues);
1916115cd2caSopenharmony_ci    EXPECT_GT(contactDataIdTwo, 0);
1917115cd2caSopenharmony_ci
1918115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
1919115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1920115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdOne));
1921115cd2caSopenharmony_ci    predicates.Or();
1922115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(contactDataIdTwo));
1923115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactData, predicates);
1924115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
1925115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1926115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(contactDataIdOne));
1927115cd2caSopenharmony_ci    std::vector<std::string> columns;
1928115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates2);
1929115cd2caSopenharmony_ci    int rowCount = 0;
1930115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1931115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1932115cd2caSopenharmony_ci    resultSet->Close();
1933115cd2caSopenharmony_ci
1934115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
1935115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(contactDataIdTwo));
1936115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetTwo = ContactQuery(contactData, columns, predicates3);
1937115cd2caSopenharmony_ci    int rowCountTwo = 0;
1938115cd2caSopenharmony_ci    resultSetTwo->GetRowCount(rowCountTwo);
1939115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCountTwo);
1940115cd2caSopenharmony_ci    resultSetTwo->Close();
1941115cd2caSopenharmony_ci    ClearContacts();
1942115cd2caSopenharmony_ci}
1943115cd2caSopenharmony_ci
1944115cd2caSopenharmony_ci/*
1945115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_3700
1946115cd2caSopenharmony_ci * @tc.name    Delete the full field data of a groups table and verify whether the deletion is successful
1947115cd2caSopenharmony_ci * @tc.desc    Groups deletion capability
1948115cd2caSopenharmony_ci * @tc.level   Level1
1949115cd2caSopenharmony_ci * @tc.size    MediumTest
1950115cd2caSopenharmony_ci * @tc.type    Function
1951115cd2caSopenharmony_ci */
1952115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_3700, testing::ext::TestSize.Level1)
1953115cd2caSopenharmony_ci{
1954115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Delete_test_3700 is starting!-----");
1955115cd2caSopenharmony_ci    // insert
1956115cd2caSopenharmony_ci    std::vector<std::string> columns;
1957115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
1958115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
1959115cd2caSopenharmony_ci    GetAllGroupsColumns(columnsInt, columnsStr);
1960115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
1961115cd2caSopenharmony_ci    int groupId = GroupsInsertValues(valuesBucket);
1962115cd2caSopenharmony_ci    EXPECT_GT(groupId, 0);
1963115cd2caSopenharmony_ci
1964115cd2caSopenharmony_ci    // test end delete data
1965115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1966115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(groupId));
1967115cd2caSopenharmony_ci    EXPECT_GT(groupId, 0);
1968115cd2caSopenharmony_ci    std::string tableName = ContactTabName::GROUPS;
1969115cd2caSopenharmony_ci    int deleteCode = ContactDelete(tableName, predicates);
1970115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
1971115cd2caSopenharmony_ci
1972115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
1973115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetDeleteQuery =
1974115cd2caSopenharmony_ci        ContactQuery(tableName, columns, predicates);
1975115cd2caSopenharmony_ci    int rowCount = -1;
1976115cd2caSopenharmony_ci    resultSetDeleteQuery->GetRowCount(rowCount);
1977115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1978115cd2caSopenharmony_ci    ClearContacts();
1979115cd2caSopenharmony_ci}
1980115cd2caSopenharmony_ci
1981115cd2caSopenharmony_ci/*
1982115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_3800
1983115cd2caSopenharmony_ci * @tc.name    Insert contact information and query contact information according to the returned ID
1984115cd2caSopenharmony_ci * @tc.desc    The ability to query the basic information of a single contact
1985115cd2caSopenharmony_ci * @tc.level   Level1
1986115cd2caSopenharmony_ci * @tc.size    MediumTest
1987115cd2caSopenharmony_ci * @tc.type    Function
1988115cd2caSopenharmony_ci */
1989115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_3800, testing::ext::TestSize.Level1)
1990115cd2caSopenharmony_ci{
1991115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_3800 is starting! ---");
1992115cd2caSopenharmony_ci    std::vector<std::string> columns;
1993115cd2caSopenharmony_ci    columns.push_back("display_name");
1994115cd2caSopenharmony_ci    columns.push_back("company");
1995115cd2caSopenharmony_ci    columns.push_back("position");
1996115cd2caSopenharmony_ci    columns.push_back("favorite");
1997115cd2caSopenharmony_ci    columns.push_back("phonetic_name");
1998115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket;
1999115cd2caSopenharmony_ci    valuesBucket.Put("display_name", "xiaoyuan");
2000115cd2caSopenharmony_ci    valuesBucket.Put("company", "tiantianxiangshang");
2001115cd2caSopenharmony_ci    valuesBucket.Put("position", "Test");
2002115cd2caSopenharmony_ci    valuesBucket.Put("favorite", 1);
2003115cd2caSopenharmony_ci    valuesBucket.Put("phonetic_name", "xiaoyuanxy");
2004115cd2caSopenharmony_ci
2005115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsertValues(valuesBucket);
2006115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2007115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2008115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
2009115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2010115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
2011115cd2caSopenharmony_ci
2012115cd2caSopenharmony_ci    // resultSet count 1
2013115cd2caSopenharmony_ci    int rowCount = -1;
2014115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2015115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2016115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Query_test_3800");
2017115cd2caSopenharmony_ci    ClearContacts();
2018115cd2caSopenharmony_ci}
2019115cd2caSopenharmony_ci
2020115cd2caSopenharmony_ci/*
2021115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_3900
2022115cd2caSopenharmony_ci * @tc.name    Insert multiple contact information and query the contact information according to the returned ID
2023115cd2caSopenharmony_ci * @tc.desc    The ability to query the basic information of multiple contacts
2024115cd2caSopenharmony_ci * @tc.level   Level1
2025115cd2caSopenharmony_ci * @tc.size    MediumTest
2026115cd2caSopenharmony_ci * @tc.type    Function
2027115cd2caSopenharmony_ci */
2028115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_3900, testing::ext::TestSize.Level1)
2029115cd2caSopenharmony_ci{
2030115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_3900 is starting! ---");
2031115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketOne;
2032115cd2caSopenharmony_ci    valuesBucketOne.Put("display_name", "xiaohei");
2033115cd2caSopenharmony_ci    valuesBucketOne.Put("company", "tiantianxiangshang");
2034115cd2caSopenharmony_ci    valuesBucketOne.Put("position", "Test");
2035115cd2caSopenharmony_ci    valuesBucketOne.Put("favorite", 1);
2036115cd2caSopenharmony_ci    valuesBucketOne.Put("phonetic_name", "xiaohei||xh");
2037115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsertValues(valuesBucketOne);
2038115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
2039115cd2caSopenharmony_ci
2040115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketTwo;
2041115cd2caSopenharmony_ci    valuesBucketTwo.Put("display_name", "xiaobai");
2042115cd2caSopenharmony_ci    valuesBucketTwo.Put("company", "tiantianxiangshang");
2043115cd2caSopenharmony_ci    valuesBucketTwo.Put("position", "Test");
2044115cd2caSopenharmony_ci    valuesBucketTwo.Put("favorite", 1);
2045115cd2caSopenharmony_ci    valuesBucketTwo.Put("phonetic_name", "xiaohei||xh");
2046115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsertValues(valuesBucketTwo);
2047115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
2048115cd2caSopenharmony_ci
2049115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketThr;
2050115cd2caSopenharmony_ci    valuesBucketThr.Put("display_name", "xiaocai");
2051115cd2caSopenharmony_ci    valuesBucketThr.Put("company", "tiantianxiangshang");
2052115cd2caSopenharmony_ci    valuesBucketThr.Put("position", "Test");
2053115cd2caSopenharmony_ci    valuesBucketThr.Put("favorite", 1);
2054115cd2caSopenharmony_ci    valuesBucketThr.Put("phonetic_name", "xiaohei||xh");
2055115cd2caSopenharmony_ci    int64_t rawContactIdThr = RawContactInsertValues(valuesBucketThr);
2056115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdThr, 0);
2057115cd2caSopenharmony_ci
2058115cd2caSopenharmony_ci    std::vector<std::string> columns;
2059115cd2caSopenharmony_ci    columns.push_back("display_name");
2060115cd2caSopenharmony_ci    columns.push_back("company");
2061115cd2caSopenharmony_ci    columns.push_back("position");
2062115cd2caSopenharmony_ci    columns.push_back("favorite");
2063115cd2caSopenharmony_ci    columns.push_back("phonetic_name");
2064115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2065115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdOne));
2066115cd2caSopenharmony_ci    predicates.Or();
2067115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdTwo));
2068115cd2caSopenharmony_ci    predicates.Or();
2069115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdThr));
2070115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2071115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
2072115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
2073115cd2caSopenharmony_ci    listValue.push_back(valuesBucketOne);
2074115cd2caSopenharmony_ci    listValue.push_back(valuesBucketTwo);
2075115cd2caSopenharmony_ci    listValue.push_back(valuesBucketThr);
2076115cd2caSopenharmony_ci    CheckResultSetList(listValue, resultSet, "contactProfile_Query_test_3900");
2077115cd2caSopenharmony_ci    ClearContacts();
2078115cd2caSopenharmony_ci}
2079115cd2caSopenharmony_ci
2080115cd2caSopenharmony_ci/*
2081115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4000
2082115cd2caSopenharmony_ci * @tc.name    Query the basic information of all contacts in the raw_contact table
2083115cd2caSopenharmony_ci * @tc.desc    The ability to query the basic information of all contacts
2084115cd2caSopenharmony_ci * @tc.level   Level1
2085115cd2caSopenharmony_ci * @tc.size    MediumTest
2086115cd2caSopenharmony_ci * @tc.type    Function
2087115cd2caSopenharmony_ci */
2088115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4000, testing::ext::TestSize.Level1)
2089115cd2caSopenharmony_ci{
2090115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4000 is starting! ---");
2091115cd2caSopenharmony_ci    std::string tag("contactProfile_Query_test_4000");
2092115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketOne;
2093115cd2caSopenharmony_ci    valuesBucketOne.Put("display_name", "xiaohsaaei");
2094115cd2caSopenharmony_ci    valuesBucketOne.Put("company", "tiantianxiadsjjnngshang");
2095115cd2caSopenharmony_ci    valuesBucketOne.Put("position", "Tests");
2096115cd2caSopenharmony_ci    valuesBucketOne.Put("favorite", 1);
2097115cd2caSopenharmony_ci    valuesBucketOne.Put("phonetic_name", "xiaohssei||x00h");
2098115cd2caSopenharmony_ci    RawContactInsertValues(valuesBucketOne);
2099115cd2caSopenharmony_ci    RawContactInsertValues(valuesBucketOne);
2100115cd2caSopenharmony_ci    std::vector<std::string> columns;
2101115cd2caSopenharmony_ci    columns.push_back("id");
2102115cd2caSopenharmony_ci    columns.push_back("display_name");
2103115cd2caSopenharmony_ci    columns.push_back("company");
2104115cd2caSopenharmony_ci    columns.push_back("position");
2105115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2106115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
2107115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
2108115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2109115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
2110115cd2caSopenharmony_ci    // resultSet count
2111115cd2caSopenharmony_ci    int rowCount = -1;
2112115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2113115cd2caSopenharmony_ci    EXPECT_GT(rowCount, 1);
2114115cd2caSopenharmony_ci    ClearContacts();
2115115cd2caSopenharmony_ci}
2116115cd2caSopenharmony_ci
2117115cd2caSopenharmony_ci/*
2118115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4100
2119115cd2caSopenharmony_ci * @tc.name    Insert all contact information and query
2120115cd2caSopenharmony_ci * @tc.desc    The ability to query all information of a single contact
2121115cd2caSopenharmony_ci * @tc.level   Level1
2122115cd2caSopenharmony_ci * @tc.size    MediumTest
2123115cd2caSopenharmony_ci * @tc.type    Function
2124115cd2caSopenharmony_ci */
2125115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4100, testing::ext::TestSize.Level1)
2126115cd2caSopenharmony_ci{
2127115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Query_test_4100 is starting!-----");
2128115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
2129115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
2130115cd2caSopenharmony_ci    std::vector<std::string> columns;
2131115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
2132115cd2caSopenharmony_ci    GetAllContactDataColumns(columnsInt, columnsStr);
2133115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
2134115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2135115cd2caSopenharmony_ci    rawContactValues.Put("favorite", "1");
2136115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("feimaomao4100", rawContactValues);
2137115cd2caSopenharmony_ci    valuesBucket.Put("raw_contact_id", rawContactId);
2138115cd2caSopenharmony_ci    // type 6 is name
2139115cd2caSopenharmony_ci    valuesBucket.Put("type_id", 6);
2140115cd2caSopenharmony_ci    int ContactDataId = ContactDataInsertValues(valuesBucket);
2141115cd2caSopenharmony_ci    EXPECT_GT(ContactDataId, 0);
2142115cd2caSopenharmony_ci
2143115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
2144115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2145115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
2146115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
2147115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Query_test_4100");
2148115cd2caSopenharmony_ci    // resultSet count 1
2149115cd2caSopenharmony_ci    int rowCount = -1;
2150115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2151115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2152115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Query_test_4100");
2153115cd2caSopenharmony_ci    ClearContacts();
2154115cd2caSopenharmony_ci}
2155115cd2caSopenharmony_ci
2156115cd2caSopenharmony_ci/*
2157115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4200
2158115cd2caSopenharmony_ci * @tc.name    Add a group and add two new contacts to the group to query the members of the group
2159115cd2caSopenharmony_ci * @tc.desc    Query group member ability
2160115cd2caSopenharmony_ci * @tc.level   Level1
2161115cd2caSopenharmony_ci * @tc.size    MediumTest
2162115cd2caSopenharmony_ci * @tc.type    Function
2163115cd2caSopenharmony_ci */
2164115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4200, testing::ext::TestSize.Level1)
2165115cd2caSopenharmony_ci{
2166115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4200 is starting! ---");
2167115cd2caSopenharmony_ci    std::string tag("contactProfile_Query_test_4200");
2168115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketGroup;
2169115cd2caSopenharmony_ci    int64_t groupId = GroupsInsert("dongshihui", valuesBucketGroup);
2170115cd2caSopenharmony_ci    EXPECT_GT(groupId, 0);
2171115cd2caSopenharmony_ci
2172115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesBucket;
2173115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("licheng", rawContactValuesBucket);
2174115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2175115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketOne;
2176115cd2caSopenharmony_ci    int64_t contactDataId =
2177115cd2caSopenharmony_ci        ContactDataInsert(rawContactId, "group_membership", std::to_string(groupId), "", valuesBucketOne);
2178115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2179115cd2caSopenharmony_ci
2180115cd2caSopenharmony_ci    rawContactValuesBucket.Clear();
2181115cd2caSopenharmony_ci    rawContactId = RawContactInsert("xiaoyuan", rawContactValuesBucket);
2182115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2183115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketTwo;
2184115cd2caSopenharmony_ci    contactDataId = ContactDataInsert(rawContactId, "group_membership", std::to_string(groupId), "", valuesBucketTwo);
2185115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2186115cd2caSopenharmony_ci
2187115cd2caSopenharmony_ci    std::vector<std::string> columns;
2188115cd2caSopenharmony_ci    columns.push_back("detail_info");
2189115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2190115cd2caSopenharmony_ci    predicates.EqualTo("detail_info", std::to_string(groupId));
2191115cd2caSopenharmony_ci    predicates.And();
2192115cd2caSopenharmony_ci    // type_id 9  is group_membership
2193115cd2caSopenharmony_ci    predicates.EqualTo("type_id", "9");
2194115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
2195115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
2196115cd2caSopenharmony_ci    int rowCount = -1;
2197115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2198115cd2caSopenharmony_ci    EXPECT_EQ(2, rowCount);
2199115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
2200115cd2caSopenharmony_ci    listValue.push_back(valuesBucketOne);
2201115cd2caSopenharmony_ci    listValue.push_back(valuesBucketTwo);
2202115cd2caSopenharmony_ci    CheckResultSetList(listValue, resultSet, "contactProfile_Query_test_4200");
2203115cd2caSopenharmony_ci    ClearContacts();
2204115cd2caSopenharmony_ci}
2205115cd2caSopenharmony_ci
2206115cd2caSopenharmony_ci/*
2207115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4300
2208115cd2caSopenharmony_ci * @tc.name    Query favorite contacts
2209115cd2caSopenharmony_ci * @tc.desc    Query the ability of favorite contacts
2210115cd2caSopenharmony_ci * @tc.level   Level1
2211115cd2caSopenharmony_ci * @tc.size    MediumTest
2212115cd2caSopenharmony_ci * @tc.type    Function
2213115cd2caSopenharmony_ci */
2214115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4300, testing::ext::TestSize.Level1)
2215115cd2caSopenharmony_ci{
2216115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4300 is starting! ---");
2217115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket;
2218115cd2caSopenharmony_ci    valuesBucket.Put("display_name", "xiaoyuan");
2219115cd2caSopenharmony_ci    valuesBucket.Put("company", "tiantianxiangshang");
2220115cd2caSopenharmony_ci    valuesBucket.Put("position", "Test");
2221115cd2caSopenharmony_ci    valuesBucket.Put("favorite", 1);
2222115cd2caSopenharmony_ci    valuesBucket.Put("phonetic_name", "xiaoyuanxy");
2223115cd2caSopenharmony_ci
2224115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsertValues(valuesBucket);
2225115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2226115cd2caSopenharmony_ci
2227115cd2caSopenharmony_ci    std::vector<std::string> columns;
2228115cd2caSopenharmony_ci    columns.push_back("display_name");
2229115cd2caSopenharmony_ci    columns.push_back("company");
2230115cd2caSopenharmony_ci    columns.push_back("position");
2231115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2232115cd2caSopenharmony_ci    predicates.EqualTo("favorite", "1");
2233115cd2caSopenharmony_ci    predicates.And();
2234115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
2235115cd2caSopenharmony_ci    predicates.And();
2236115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
2237115cd2caSopenharmony_ci
2238115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2239115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
2240115cd2caSopenharmony_ci
2241115cd2caSopenharmony_ci    int rowCount = -1;
2242115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2243115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2244115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "contactProfile_Query_test_4300");
2245115cd2caSopenharmony_ci    ClearContacts();
2246115cd2caSopenharmony_ci}
2247115cd2caSopenharmony_ci
2248115cd2caSopenharmony_ci/*
2249115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4400
2250115cd2caSopenharmony_ci * @tc.name    Query recent contacts
2251115cd2caSopenharmony_ci * @tc.desc    Query recent contact ability
2252115cd2caSopenharmony_ci * @tc.level   Level1
2253115cd2caSopenharmony_ci * @tc.size    MediumTest
2254115cd2caSopenharmony_ci * @tc.type    Function
2255115cd2caSopenharmony_ci */
2256115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4400, testing::ext::TestSize.Level1)
2257115cd2caSopenharmony_ci{
2258115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4400 is starting! ---");
2259115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesBucket;
2260115cd2caSopenharmony_ci    int64_t rawContactId = RawContactLastContactedInsert("wangwu", 60, rawContactValuesBucket);
2261115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2262115cd2caSopenharmony_ci
2263115cd2caSopenharmony_ci    std::vector<std::string> columns;
2264115cd2caSopenharmony_ci    columns.push_back("id");
2265115cd2caSopenharmony_ci    columns.push_back("display_name");
2266115cd2caSopenharmony_ci    columns.push_back("lastest_contacted_time");
2267115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2268115cd2caSopenharmony_ci    predicates.EqualTo("lastest_contacted_time", "60");
2269115cd2caSopenharmony_ci    predicates.And();
2270115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
2271115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2272115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
2273115cd2caSopenharmony_ci
2274115cd2caSopenharmony_ci    int rowCount = -1;
2275115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2276115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2277115cd2caSopenharmony_ci    CheckResultSet(rawContactValuesBucket, resultSet, "contactProfile_Query_test_4400");
2278115cd2caSopenharmony_ci    ClearContacts();
2279115cd2caSopenharmony_ci}
2280115cd2caSopenharmony_ci
2281115cd2caSopenharmony_ci/*
2282115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4500
2283115cd2caSopenharmony_ci * @tc.name    Query the recently deleted contacts in the deleted contacts table
2284115cd2caSopenharmony_ci * @tc.desc    Ability to query recently deleted contacts
2285115cd2caSopenharmony_ci * @tc.level   Level1
2286115cd2caSopenharmony_ci * @tc.size    MediumTest
2287115cd2caSopenharmony_ci * @tc.type    Function
2288115cd2caSopenharmony_ci */
2289115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4500, testing::ext::TestSize.Level1)
2290115cd2caSopenharmony_ci{
2291115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4500 is starting! ---");
2292115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2293115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaobai", rawContactValues);
2294115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2295115cd2caSopenharmony_ci
2296115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2297115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
2298115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2299115cd2caSopenharmony_ci    int deleteCode = ContactDelete(rawContacts, predicates);
2300115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2301115cd2caSopenharmony_ci
2302115cd2caSopenharmony_ci    sleep(SLEEP_TIME);
2303115cd2caSopenharmony_ci    std::vector<std::string> columns;
2304115cd2caSopenharmony_ci    columns.push_back("display_name");
2305115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2306115cd2caSopenharmony_ci    predicates2.EqualTo("raw_contact_id", std::to_string(rawContactId));
2307115cd2caSopenharmony_ci    std::string deletedRawContact = ContactTabName::DELETED_RAW_CONTACT;
2308115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
2309115cd2caSopenharmony_ci        ContactQuery(deletedRawContact, columns, predicates2);
2310115cd2caSopenharmony_ci
2311115cd2caSopenharmony_ci    int rowCount = -1;
2312115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2313115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2314115cd2caSopenharmony_ci    CheckResultSet(rawContactValues, resultSet, "contactProfile_Query_test_4500");
2315115cd2caSopenharmony_ci    ClearContacts();
2316115cd2caSopenharmony_ci}
2317115cd2caSopenharmony_ci
2318115cd2caSopenharmony_ci/*
2319115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4600
2320115cd2caSopenharmony_ci * @tc.name    Query the mobile phone numbers of all contacts
2321115cd2caSopenharmony_ci * @tc.desc    Query the capabilities of all mobile phone numbers
2322115cd2caSopenharmony_ci * @tc.level   Level1
2323115cd2caSopenharmony_ci * @tc.size    MediumTest
2324115cd2caSopenharmony_ci * @tc.type    Function
2325115cd2caSopenharmony_ci */
2326115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4600, testing::ext::TestSize.Level1)
2327115cd2caSopenharmony_ci{
2328115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4600 is starting! ---");
2329115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
2330115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2331115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
2332115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactData, predicates);
2333115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2334115cd2caSopenharmony_ci
2335115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2336115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("dongming", rawContactValues);
2337115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
2338115cd2caSopenharmony_ci
2339115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValues;
2340115cd2caSopenharmony_ci    int64_t contactDataId = ContactDataInsert(rawContactIdOne, "phone", "155825478", "", contactDataValues);
2341115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2342115cd2caSopenharmony_ci
2343115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesTwo;
2344115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("xiaocai", rawContactValuesTwo);
2345115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
2346115cd2caSopenharmony_ci
2347115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesTwo;
2348115cd2caSopenharmony_ci    contactDataId = ContactDataInsert(rawContactIdTwo, "phone", "18853269857", "", contactDataValuesTwo);
2349115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2350115cd2caSopenharmony_ci
2351115cd2caSopenharmony_ci    std::vector<std::string> columns;
2352115cd2caSopenharmony_ci    columns.push_back("detail_info");
2353115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2354115cd2caSopenharmony_ci    // type_id 5 is phone
2355115cd2caSopenharmony_ci    predicates2.EqualTo("type_id", "5");
2356115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates2);
2357115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
2358115cd2caSopenharmony_ci    listValue.push_back(contactDataValues);
2359115cd2caSopenharmony_ci    listValue.push_back(contactDataValuesTwo);
2360115cd2caSopenharmony_ci    CheckResultSetList(listValue, resultSet, "contactProfile_Query_test_4600");
2361115cd2caSopenharmony_ci    ClearContacts();
2362115cd2caSopenharmony_ci}
2363115cd2caSopenharmony_ci
2364115cd2caSopenharmony_ci/*
2365115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4700
2366115cd2caSopenharmony_ci * @tc.name    Query mailbox of all contacts
2367115cd2caSopenharmony_ci * @tc.desc    Query all mailbox capabilities
2368115cd2caSopenharmony_ci * @tc.level   Level1
2369115cd2caSopenharmony_ci * @tc.size    MediumTest
2370115cd2caSopenharmony_ci * @tc.type    Function
2371115cd2caSopenharmony_ci */
2372115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4700, testing::ext::TestSize.Level1)
2373115cd2caSopenharmony_ci{
2374115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4700 is starting! ---");
2375115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
2376115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2377115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
2378115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactData, predicates);
2379115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2380115cd2caSopenharmony_ci
2381115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2382115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("dongming", rawContactValues);
2383115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
2384115cd2caSopenharmony_ci    rawContactValues.Clear();
2385115cd2caSopenharmony_ci
2386115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("xiaocai", rawContactValues);
2387115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
2388115cd2caSopenharmony_ci
2389115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValues;
2390115cd2caSopenharmony_ci    int64_t contactDataId = ContactDataInsert(rawContactIdOne, "email", "166@163.com", "", contactValues);
2391115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2392115cd2caSopenharmony_ci
2393115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValuesTwo;
2394115cd2caSopenharmony_ci    contactDataId = ContactDataInsert(rawContactIdTwo, "email", "199@163.com", "", contactValuesTwo);
2395115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2396115cd2caSopenharmony_ci
2397115cd2caSopenharmony_ci    std::vector<std::string> columns;
2398115cd2caSopenharmony_ci    columns.push_back("detail_info");
2399115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2400115cd2caSopenharmony_ci    // type_id 1 is   email
2401115cd2caSopenharmony_ci    predicates2.EqualTo("type_id", "1");
2402115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates2);
2403115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
2404115cd2caSopenharmony_ci    listValue.push_back(contactValues);
2405115cd2caSopenharmony_ci    listValue.push_back(contactValuesTwo);
2406115cd2caSopenharmony_ci    CheckResultSetList(listValue, resultSet, "contactProfile_Query_test_4700");
2407115cd2caSopenharmony_ci    ClearContacts();
2408115cd2caSopenharmony_ci}
2409115cd2caSopenharmony_ci
2410115cd2caSopenharmony_ci/*
2411115cd2caSopenharmony_ci * @tc.number  contactProfile_Query_test_4800
2412115cd2caSopenharmony_ci * @tc.name    Query information about a single contact
2413115cd2caSopenharmony_ci * @tc.desc    Ability to query data information of a single contact
2414115cd2caSopenharmony_ci * @tc.level   Level1
2415115cd2caSopenharmony_ci * @tc.size    MediumTest
2416115cd2caSopenharmony_ci * @tc.type    Function
2417115cd2caSopenharmony_ci */
2418115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Query_test_4800, testing::ext::TestSize.Level1)
2419115cd2caSopenharmony_ci{
2420115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Query_test_4800 is starting! ---");
2421115cd2caSopenharmony_ci    std::string tag("contactProfile_Query_test_4800");
2422115cd2caSopenharmony_ci
2423115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2424115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("BossCai", rawContactValues);
2425115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2426115cd2caSopenharmony_ci
2427115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValues;
2428115cd2caSopenharmony_ci    int64_t contactDataId = ContactDataInsert(rawContactId, "name", "BossCai", "", contactValues);
2429115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2430115cd2caSopenharmony_ci
2431115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValuesTwo;
2432115cd2caSopenharmony_ci    contactDataId = ContactDataInsert(rawContactId, "organization", "happy500", "Test", contactValuesTwo);
2433115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2434115cd2caSopenharmony_ci
2435115cd2caSopenharmony_ci    std::vector<std::string> columns;
2436115cd2caSopenharmony_ci    columns.push_back("detail_info");
2437115cd2caSopenharmony_ci    columns.push_back("position");
2438115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2439115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
2440115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
2441115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
2442115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
2443115cd2caSopenharmony_ci    listValue.push_back(contactValues);
2444115cd2caSopenharmony_ci    listValue.push_back(contactValuesTwo);
2445115cd2caSopenharmony_ci    CheckResultSetList(listValue, resultSet, "contactProfile_Query_test_4800");
2446115cd2caSopenharmony_ci    ClearContacts();
2447115cd2caSopenharmony_ci}
2448115cd2caSopenharmony_ci
2449115cd2caSopenharmony_ci/*
2450115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_4900
2451115cd2caSopenharmony_ci * @tc.name    Query the deleted contact according to the original contact ID
2452115cd2caSopenharmony_ci * @tc.desc    Ability to delete contact data from the basic raw data table and record basic raw data
2453115cd2caSopenharmony_ci * @tc.level   Level1
2454115cd2caSopenharmony_ci * @tc.size    MediumTest
2455115cd2caSopenharmony_ci * @tc.type    Function
2456115cd2caSopenharmony_ci */
2457115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_4900, testing::ext::TestSize.Level1)
2458115cd2caSopenharmony_ci{
2459115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_4900 is starting! ---");
2460115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2461115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaoli", rawContactValues);
2462115cd2caSopenharmony_ci    HILOG_INFO("rawContactId= %{public}ld", rawContactId);
2463115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2464115cd2caSopenharmony_ci
2465115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2466115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
2467115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2468115cd2caSopenharmony_ci    int deleteCode = ContactDelete(rawContacts, predicates);
2469115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2470115cd2caSopenharmony_ci
2471115cd2caSopenharmony_ci    sleep(SLEEP_TIME);
2472115cd2caSopenharmony_ci    std::vector<std::string> columns;
2473115cd2caSopenharmony_ci    columns.push_back("raw_contact_id");
2474115cd2caSopenharmony_ci    columns.push_back("display_name");
2475115cd2caSopenharmony_ci    std::string deletedRawContact = ContactTabName::DELETED_RAW_CONTACT;
2476115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2477115cd2caSopenharmony_ci    predicates2.EqualTo("raw_contact_id", std::to_string(rawContactId));
2478115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
2479115cd2caSopenharmony_ci        ContactQuery(deletedRawContact, columns, predicates2);
2480115cd2caSopenharmony_ci
2481115cd2caSopenharmony_ci    int rowCount = -1;
2482115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2483115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2484115cd2caSopenharmony_ci    rawContactValues.Put("raw_contact_id", rawContactId);
2485115cd2caSopenharmony_ci    CheckResultSet(rawContactValues, resultSet, "contactProfile_Delete_test_4900");
2486115cd2caSopenharmony_ci    ClearContacts();
2487115cd2caSopenharmony_ci}
2488115cd2caSopenharmony_ci
2489115cd2caSopenharmony_ci/*
2490115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_5000
2491115cd2caSopenharmony_ci * @tc.name    Delete a single full field data in the raw_contact table
2492115cd2caSopenharmony_ci * @tc.desc    Raw contact deletion capability
2493115cd2caSopenharmony_ci * @tc.level   Level1
2494115cd2caSopenharmony_ci * @tc.size    MediumTest
2495115cd2caSopenharmony_ci * @tc.type    Function
2496115cd2caSopenharmony_ci */
2497115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_5000, testing::ext::TestSize.Level1)
2498115cd2caSopenharmony_ci{
2499115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Delete_test_5000 is starting!-----");
2500115cd2caSopenharmony_ci    // insert
2501115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
2502115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
2503115cd2caSopenharmony_ci    GetAllRawContactColumns(columnsInt, columnsStr);
2504115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
2505115cd2caSopenharmony_ci    int rawId = RawContactInsertValues(valuesBucket);
2506115cd2caSopenharmony_ci    EXPECT_GT(rawId, 0);
2507115cd2caSopenharmony_ci
2508115cd2caSopenharmony_ci    // test end delete data
2509115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2510115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawId));
2511115cd2caSopenharmony_ci    EXPECT_GT(rawId, 0);
2512115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2513115cd2caSopenharmony_ci    int deleteCode = ContactDelete(rawContacts, predicates);
2514115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2515115cd2caSopenharmony_ci    std::vector<std::string> columns;
2516115cd2caSopenharmony_ci    columns.push_back("is_deleted");
2517115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucketDelete;
2518115cd2caSopenharmony_ci    valuesBucketDelete.Put("is_deleted", 1);
2519115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, valuesBucketDelete, "contactProfile_Delete_test_5000");
2520115cd2caSopenharmony_ci    ClearContacts();
2521115cd2caSopenharmony_ci}
2522115cd2caSopenharmony_ci
2523115cd2caSopenharmony_ci/*
2524115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_5100
2525115cd2caSopenharmony_ci * @tc.name    Query the details of the newly deleted contact
2526115cd2caSopenharmony_ci * @tc.desc    Ability to delete contact data from the detailed data table and record detailed data
2527115cd2caSopenharmony_ci * @tc.level   Level1
2528115cd2caSopenharmony_ci * @tc.size    MediumTest
2529115cd2caSopenharmony_ci * @tc.type    Function
2530115cd2caSopenharmony_ci */
2531115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_5100, testing::ext::TestSize.Level1)
2532115cd2caSopenharmony_ci{
2533115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_5100 is starting! ---");
2534115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2535115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("siyuan", rawContactValues);
2536115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2537115cd2caSopenharmony_ci
2538115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactValue;
2539115cd2caSopenharmony_ci    int64_t contactDataId = ContactDataInsert(rawContactId, "organization", "tiantianxaingshang", "Test", contactValue);
2540115cd2caSopenharmony_ci    EXPECT_GT(contactDataId, 0);
2541115cd2caSopenharmony_ci
2542115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2543115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
2544115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2545115cd2caSopenharmony_ci    int deleteCode = ContactDelete(rawContacts, predicates);
2546115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2547115cd2caSopenharmony_ci
2548115cd2caSopenharmony_ci    sleep(SLEEP_TIME);
2549115cd2caSopenharmony_ci    std::vector<std::string> columns;
2550115cd2caSopenharmony_ci    columns.push_back("raw_contact_id");
2551115cd2caSopenharmony_ci    columns.push_back("display_name");
2552115cd2caSopenharmony_ci    std::string deletedRawContact = ContactTabName::DELETED_RAW_CONTACT;
2553115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2554115cd2caSopenharmony_ci    predicates2.EqualTo("raw_contact_id", std::to_string(rawContactId));
2555115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
2556115cd2caSopenharmony_ci        ContactQuery(deletedRawContact, columns, predicates2);
2557115cd2caSopenharmony_ci
2558115cd2caSopenharmony_ci    int rowCount = -1;
2559115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2560115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2561115cd2caSopenharmony_ci    rawContactValues.Put("raw_contact_id", rawContactId);
2562115cd2caSopenharmony_ci    CheckResultSet(rawContactValues, resultSet, "contactProfile_Delete_test_5100");
2563115cd2caSopenharmony_ci    ClearContacts();
2564115cd2caSopenharmony_ci}
2565115cd2caSopenharmony_ci
2566115cd2caSopenharmony_ci/*
2567115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_5200
2568115cd2caSopenharmony_ci * @tc.name    Delete a single full field data in the contact_data table
2569115cd2caSopenharmony_ci * @tc.desc    Deleted ability to contactProfile_data
2570115cd2caSopenharmony_ci * @tc.level   Level1
2571115cd2caSopenharmony_ci * @tc.size    MediumTest
2572115cd2caSopenharmony_ci * @tc.type    Function
2573115cd2caSopenharmony_ci */
2574115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_5200, testing::ext::TestSize.Level1)
2575115cd2caSopenharmony_ci{
2576115cd2caSopenharmony_ci    HILOG_INFO("-----contactProfile_Delete_test_5200 is starting!-----");
2577115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
2578115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
2579115cd2caSopenharmony_ci    std::vector<std::string> columns;
2580115cd2caSopenharmony_ci    std::string tableName = ContactTabName::CONTACT_DATA;
2581115cd2caSopenharmony_ci    GetAllContactDataColumns(columnsInt, columnsStr);
2582115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
2583115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2584115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("feimaotui", rawContactValues);
2585115cd2caSopenharmony_ci    valuesBucket.Put("raw_contact_id", rawContactId);
2586115cd2caSopenharmony_ci    // type id 6 is name
2587115cd2caSopenharmony_ci    valuesBucket.Put("type_id", 6);
2588115cd2caSopenharmony_ci    int ContactDataId = ContactDataInsertValues(valuesBucket);
2589115cd2caSopenharmony_ci    EXPECT_GT(ContactDataId, 0);
2590115cd2caSopenharmony_ci
2591115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2592115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
2593115cd2caSopenharmony_ci    int deleteCode = ContactDelete(tableName, predicates);
2594115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2595115cd2caSopenharmony_ci
2596115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
2597115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetDeleteQuery =
2598115cd2caSopenharmony_ci        ContactQuery(tableName, columns, predicates);
2599115cd2caSopenharmony_ci    // resultSet count 0
2600115cd2caSopenharmony_ci    int rowCount = -1;
2601115cd2caSopenharmony_ci    resultSetDeleteQuery->GetRowCount(rowCount);
2602115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
2603115cd2caSopenharmony_ci    ClearContacts();
2604115cd2caSopenharmony_ci}
2605115cd2caSopenharmony_ci
2606115cd2caSopenharmony_ci/*
2607115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_5300
2608115cd2caSopenharmony_ci * @tc.name    Query deleted basic data
2609115cd2caSopenharmony_ci * @tc.desc    Ability to delete and record basic data of a single contact
2610115cd2caSopenharmony_ci * @tc.level   Level1
2611115cd2caSopenharmony_ci * @tc.size    MediumTest
2612115cd2caSopenharmony_ci * @tc.type    Function
2613115cd2caSopenharmony_ci */
2614115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_5300, testing::ext::TestSize.Level1)
2615115cd2caSopenharmony_ci{
2616115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_5300 is starting! ---");
2617115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2618115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaohong", rawContactValues);
2619115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2620115cd2caSopenharmony_ci
2621115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2622115cd2caSopenharmony_ci    predicates.EqualTo("name_raw_contact_id", std::to_string(rawContactId));
2623115cd2caSopenharmony_ci    std::string contact = ContactTabName::CONTACT;
2624115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contact, predicates);
2625115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2626115cd2caSopenharmony_ci
2627115cd2caSopenharmony_ci    sleep(SLEEP_TIME);
2628115cd2caSopenharmony_ci    std::vector<std::string> columns;
2629115cd2caSopenharmony_ci    columns.push_back("raw_contact_id");
2630115cd2caSopenharmony_ci    columns.push_back("display_name");
2631115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2632115cd2caSopenharmony_ci    predicates2.EqualTo("raw_contact_id", std::to_string(rawContactId));
2633115cd2caSopenharmony_ci    std::string deletedRawContact = ContactTabName::DELETED_RAW_CONTACT;
2634115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
2635115cd2caSopenharmony_ci        ContactQuery(deletedRawContact, columns, predicates2);
2636115cd2caSopenharmony_ci
2637115cd2caSopenharmony_ci    int rowCount = -1;
2638115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2639115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2640115cd2caSopenharmony_ci    rawContactValues.Put("raw_contact_id", rawContactId);
2641115cd2caSopenharmony_ci    CheckResultSet(rawContactValues, resultSet, "contactProfile_Delete_test_5300");
2642115cd2caSopenharmony_ci    ClearContacts();
2643115cd2caSopenharmony_ci}
2644115cd2caSopenharmony_ci
2645115cd2caSopenharmony_ci/*
2646115cd2caSopenharmony_ci * @tc.number  contactProfile_BatchInsert_test_5400
2647115cd2caSopenharmony_ci * @tc.name    Add basic contact information in batch and verify whether the insertion is successful
2648115cd2caSopenharmony_ci * @tc.desc    Bulk increase capacity of address book
2649115cd2caSopenharmony_ci * @tc.level   Level1
2650115cd2caSopenharmony_ci * @tc.size    MediumTest
2651115cd2caSopenharmony_ci * @tc.type    Function
2652115cd2caSopenharmony_ci */
2653115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_BatchInsert_test_5400, testing::ext::TestSize.Level1)
2654115cd2caSopenharmony_ci{
2655115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_BatchInsert_test_5400 is starting! ---");
2656115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
2657115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesOne;
2658115cd2caSopenharmony_ci    rawContactValuesOne.Put("display_name", std::string("zhangming"));
2659115cd2caSopenharmony_ci    rawContactValuesOne.Put("company", std::string("tiantainxiangzuo4200000000"));
2660115cd2caSopenharmony_ci    rawContactValuesOne.Put("position", std::string("Test"));
2661115cd2caSopenharmony_ci
2662115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesTwo;
2663115cd2caSopenharmony_ci    rawContactValuesTwo.Put("display_name", std::string("ligang"));
2664115cd2caSopenharmony_ci    rawContactValuesTwo.Put("company", std::string("tiantainxiangzuo4200000000"));
2665115cd2caSopenharmony_ci    rawContactValuesTwo.Put("position", std::string("Developer"));
2666115cd2caSopenharmony_ci
2667115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesThree;
2668115cd2caSopenharmony_ci    rawContactValuesThree.Put("display_name", std::string("wanghong"));
2669115cd2caSopenharmony_ci    rawContactValuesThree.Put("company", std::string("tiantainxiangzuo4200000000"));
2670115cd2caSopenharmony_ci    rawContactValuesThree.Put("position", std::string("manage"));
2671115cd2caSopenharmony_ci
2672115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
2673115cd2caSopenharmony_ci    listAddBluk.push_back(rawContactValuesOne);
2674115cd2caSopenharmony_ci    listAddBluk.push_back(rawContactValuesTwo);
2675115cd2caSopenharmony_ci    listAddBluk.push_back(rawContactValuesThree);
2676115cd2caSopenharmony_ci
2677115cd2caSopenharmony_ci    int batchInserCode = contactsDataAbility.BatchInsert(uriRawContact, listAddBluk);
2678115cd2caSopenharmony_ci    EXPECT_EQ(batchInserCode, 0);
2679115cd2caSopenharmony_ci
2680115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2681115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2682115cd2caSopenharmony_ci    predicates.EqualTo("company", "tiantainxiangzuo4200000000");
2683115cd2caSopenharmony_ci    predicates.And();
2684115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
2685115cd2caSopenharmony_ci    predicates.OrderByAsc("id");
2686115cd2caSopenharmony_ci    std::vector<std::string> columns;
2687115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
2688115cd2caSopenharmony_ci    int rowCount = 0;
2689115cd2caSopenharmony_ci    int queryCount = 3;
2690115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2691115cd2caSopenharmony_ci    EXPECT_EQ(queryCount, rowCount);
2692115cd2caSopenharmony_ci    CheckResultSetList(listAddBluk, resultSet, "contactProfile_BatchInsert_test_5400");
2693115cd2caSopenharmony_ci    ClearContacts();
2694115cd2caSopenharmony_ci}
2695115cd2caSopenharmony_ci
2696115cd2caSopenharmony_ci/*
2697115cd2caSopenharmony_ci * @tc.number  contactProfile_BatchInsert_test_5500
2698115cd2caSopenharmony_ci * @tc.name    Batch add contact details and verify that the insertion was successful
2699115cd2caSopenharmony_ci * @tc.desc    Bulk increase capacity of address book
2700115cd2caSopenharmony_ci * @tc.level   Level1
2701115cd2caSopenharmony_ci * @tc.size    MediumTest
2702115cd2caSopenharmony_ci * @tc.type    Function
2703115cd2caSopenharmony_ci */
2704115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_BatchInsert_test_5500, testing::ext::TestSize.Level1)
2705115cd2caSopenharmony_ci{
2706115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_BatchInsert_test_5500 is starting! ---");
2707115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
2708115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ProfileUri::CONTACT_DATA);
2709115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2710115cd2caSopenharmony_ci    rawContactValues.Put("display_name", "zhangming");
2711115cd2caSopenharmony_ci    int64_t rawContactId = contactsDataAbility.Insert(uriRawContact, rawContactValues);
2712115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2713115cd2caSopenharmony_ci
2714115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk = GetBatchList(rawContactId);
2715115cd2caSopenharmony_ci    int batchInserCode = contactsDataAbility.BatchInsert(uriContactData, listAddBluk);
2716115cd2caSopenharmony_ci    EXPECT_EQ(batchInserCode, 0);
2717115cd2caSopenharmony_ci
2718115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
2719115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2720115cd2caSopenharmony_ci    // type_id 1 is email
2721115cd2caSopenharmony_ci    predicates.EqualTo("type_id", "1");
2722115cd2caSopenharmony_ci    predicates.And();
2723115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
2724115cd2caSopenharmony_ci    std::vector<std::string> columns;
2725115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
2726115cd2caSopenharmony_ci    int rowCount = 0;
2727115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2728115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
2729115cd2caSopenharmony_ci    int indexTwo = 2;
2730115cd2caSopenharmony_ci    CheckResultSet(listAddBluk[indexTwo], resultSet, "contactProfile_BatchInsert_test_5500");
2731115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2732115cd2caSopenharmony_ci    // type 5 is phone
2733115cd2caSopenharmony_ci    predicates2.EqualTo("type_id", "5");
2734115cd2caSopenharmony_ci    predicates2.And();
2735115cd2caSopenharmony_ci    predicates2.EqualTo("raw_contact_id", std::to_string(rawContactId));
2736115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetFour =
2737115cd2caSopenharmony_ci        ContactQuery(contactData, columns, predicates2);
2738115cd2caSopenharmony_ci    int rowCountFour = 0;
2739115cd2caSopenharmony_ci    resultSetFour->GetRowCount(rowCountFour);
2740115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCountFour);
2741115cd2caSopenharmony_ci    int indexThree = 3;
2742115cd2caSopenharmony_ci    CheckResultSet(listAddBluk[indexThree], resultSetFour, "contactProfile_BatchInsert_test_5500");
2743115cd2caSopenharmony_ci    ClearContacts();
2744115cd2caSopenharmony_ci}
2745115cd2caSopenharmony_ci
2746115cd2caSopenharmony_cistd::vector<OHOS::DataShare::DataShareValuesBucket> ContactProfileTest::GetBatchList(int64_t rawContactId)
2747115cd2caSopenharmony_ci{
2748115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesOne;
2749115cd2caSopenharmony_ci    contactDataValuesOne.Put("raw_contact_id", rawContactId);
2750115cd2caSopenharmony_ci    contactDataValuesOne.Put("content_type", "name");
2751115cd2caSopenharmony_ci    contactDataValuesOne.Put("detail_info", "zhangming");
2752115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesTwo;
2753115cd2caSopenharmony_ci    contactDataValuesTwo.Put("raw_contact_id", rawContactId);
2754115cd2caSopenharmony_ci    contactDataValuesTwo.Put("content_type", "organization");
2755115cd2caSopenharmony_ci    contactDataValuesTwo.Put("detail_info", "tiantianxaingshang");
2756115cd2caSopenharmony_ci    contactDataValuesTwo.Put("position", "Test");
2757115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesThree;
2758115cd2caSopenharmony_ci    contactDataValuesThree.Put("raw_contact_id", rawContactId);
2759115cd2caSopenharmony_ci    contactDataValuesThree.Put("content_type", "email");
2760115cd2caSopenharmony_ci    contactDataValuesThree.Put("detail_info", "199632@163.com");
2761115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesFour;
2762115cd2caSopenharmony_ci    contactDataValuesFour.Put("raw_contact_id", rawContactId);
2763115cd2caSopenharmony_ci    contactDataValuesFour.Put("content_type", "phone");
2764115cd2caSopenharmony_ci    contactDataValuesFour.Put("detail_info", "1234567898");
2765115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
2766115cd2caSopenharmony_ci    listAddBluk.push_back(contactDataValuesOne);
2767115cd2caSopenharmony_ci    listAddBluk.push_back(contactDataValuesTwo);
2768115cd2caSopenharmony_ci    listAddBluk.push_back(contactDataValuesThree);
2769115cd2caSopenharmony_ci    listAddBluk.push_back(contactDataValuesFour);
2770115cd2caSopenharmony_ci    return listAddBluk;
2771115cd2caSopenharmony_ci}
2772115cd2caSopenharmony_ci
2773115cd2caSopenharmony_ci/*
2774115cd2caSopenharmony_ci * @tc.number  contactProfile_Delete_test_5600
2775115cd2caSopenharmony_ci * @tc.name    Delete contacts in batch and verify whether the deletion is successful
2776115cd2caSopenharmony_ci * @tc.desc    delete ability to call records in batches
2777115cd2caSopenharmony_ci * @tc.level   Level1
2778115cd2caSopenharmony_ci * @tc.size    MediumTest
2779115cd2caSopenharmony_ci * @tc.type    Function
2780115cd2caSopenharmony_ci */
2781115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Delete_test_5600, testing::ext::TestSize.Level1)
2782115cd2caSopenharmony_ci{
2783115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Delete_test_5600 is starting!---");
2784115cd2caSopenharmony_ci    int time = 10000;
2785115cd2caSopenharmony_ci    std::chrono::milliseconds dura(time);
2786115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
2787115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawValuesBucket;
2788115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("update_detail_contactdata", rawValuesBucket);
2789115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
2790115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("update_contactdata", rawValuesBucket);
2791115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
2792115cd2caSopenharmony_ci
2793115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2794115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
2795115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataSharePredicates> executePredicates =
2796115cd2caSopenharmony_ci        std::make_shared<OHOS::DataShare::DataSharePredicates>(predicates);
2797115cd2caSopenharmony_ci    std::shared_ptr<Uri> uri = std::make_shared<Uri>(ProfileUri::RAW_CONTACT);
2798115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareOperation> operation =
2799115cd2caSopenharmony_ci        OHOS::DataShare::DataShareOperation::NewDeleteBuilder(uri)
2800115cd2caSopenharmony_ci            ->WithPredicatesBackReference(0, 0)
2801115cd2caSopenharmony_ci            ->WithPredicates(executePredicates)
2802115cd2caSopenharmony_ci            ->WithInterruptionAllowed(true)
2803115cd2caSopenharmony_ci            ->Build();
2804115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareOperation>> executeBatchOperations;
2805115cd2caSopenharmony_ci    executeBatchOperations.push_back(operation);
2806115cd2caSopenharmony_ci    InitAbility();
2807115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareResult>> dataShareResult =
2808115cd2caSopenharmony_ci        contactsDataAbility.ExecuteBatch(executeBatchOperations);
2809115cd2caSopenharmony_ci    EXPECT_EQ(0, dataShareResult[0]->GetCount());
2810115cd2caSopenharmony_ci    std::string tableName = ContactTabName::CONTACT_DATA;
2811115cd2caSopenharmony_ci    std::vector<std::string> columnQuery;
2812115cd2caSopenharmony_ci    columnQuery.push_back("detail_info");
2813115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
2814115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(tableName, columnQuery, predicates);
2815115cd2caSopenharmony_ci    int rowCount = 0;
2816115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2817115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
2818115cd2caSopenharmony_ci    ClearContacts();
2819115cd2caSopenharmony_ci}
2820115cd2caSopenharmony_ci
2821115cd2caSopenharmony_ci/*
2822115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_5700
2823115cd2caSopenharmony_ci * @tc.name    Batch favorite / cancel favorite contacts
2824115cd2caSopenharmony_ci * @tc.desc    Batch collection and uncollection capabilities
2825115cd2caSopenharmony_ci * @tc.level   Level1
2826115cd2caSopenharmony_ci * @tc.size    MediumTest
2827115cd2caSopenharmony_ci * @tc.type    Function
2828115cd2caSopenharmony_ci */
2829115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_5700, testing::ext::TestSize.Level1)
2830115cd2caSopenharmony_ci{
2831115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_5700 is starting! ---");
2832115cd2caSopenharmony_ci
2833115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
2834115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesOne;
2835115cd2caSopenharmony_ci    rawContactValuesOne.Put("display_name", "zhangmingming");
2836115cd2caSopenharmony_ci    rawContactValuesOne.Put("favorite", 1);
2837115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesTwo;
2838115cd2caSopenharmony_ci    rawContactValuesTwo.Put("display_name", "yuanmoumou");
2839115cd2caSopenharmony_ci    rawContactValuesTwo.Put("favorite", 1);
2840115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValuesThree;
2841115cd2caSopenharmony_ci    rawContactValuesThree.Put("display_name", "xiaofenren");
2842115cd2caSopenharmony_ci    rawContactValuesThree.Put("favorite", 1);
2843115cd2caSopenharmony_ci
2844115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
2845115cd2caSopenharmony_ci    listAddBluk.push_back(rawContactValuesOne);
2846115cd2caSopenharmony_ci    listAddBluk.push_back(rawContactValuesTwo);
2847115cd2caSopenharmony_ci    listAddBluk.push_back(rawContactValuesThree);
2848115cd2caSopenharmony_ci    int batchInserCode = contactsDataAbility.BatchInsert(uriRawContact, listAddBluk);
2849115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_5700 : batchInserCode = %{public}d", batchInserCode);
2850115cd2caSopenharmony_ci    EXPECT_EQ(batchInserCode, 0);
2851115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
2852115cd2caSopenharmony_ci    updateValues.Put("favorite", 0);
2853115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2854115cd2caSopenharmony_ci    predicates.EqualTo("display_name", "zhangmingming");
2855115cd2caSopenharmony_ci    predicates.Or();
2856115cd2caSopenharmony_ci    predicates.EqualTo("display_name", "yuanmoumou");
2857115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
2858115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
2859115cd2caSopenharmony_ci    HILOG_INFO("contactProfile_Update_test_5700: updateCode = %{public}d", updateCode);
2860115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
2861115cd2caSopenharmony_ci
2862115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
2863115cd2caSopenharmony_ci    predicates2.EqualTo("display_name", "zhangmingming");
2864115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates2, updateValues, "contactProfile_Update_test_5700");
2865115cd2caSopenharmony_ci
2866115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
2867115cd2caSopenharmony_ci    predicates3.EqualTo("display_name", "xiaofenren");
2868115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates3, rawContactValuesThree, "contactProfile_Update_test_5700");
2869115cd2caSopenharmony_ci    ClearContacts();
2870115cd2caSopenharmony_ci}
2871115cd2caSopenharmony_ci
2872115cd2caSopenharmony_ci/*
2873115cd2caSopenharmony_ci * @tc.number  contactProfile_Update_test_5800
2874115cd2caSopenharmony_ci * @tc.name    Update the contact in batch and verify whether the modification is successful
2875115cd2caSopenharmony_ci * @tc.desc    update ability to call records in batches
2876115cd2caSopenharmony_ci * @tc.level   Level1
2877115cd2caSopenharmony_ci * @tc.size    MediumTest
2878115cd2caSopenharmony_ci * @tc.type    Function
2879115cd2caSopenharmony_ci */
2880115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_Update_test_5800, testing::ext::TestSize.Level1)
2881115cd2caSopenharmony_ci{
2882115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_Update_test_5800 is starting!---");
2883115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawValuesBucket;
2884115cd2caSopenharmony_ci    int64_t rawContactIdOne = RawContactInsert("update_detail_contactdata", rawValuesBucket);
2885115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdOne, 0);
2886115cd2caSopenharmony_ci    int64_t rawContactIdTwo = RawContactInsert("update_contactdata", rawValuesBucket);
2887115cd2caSopenharmony_ci    EXPECT_GT(rawContactIdTwo, 0);
2888115cd2caSopenharmony_ci
2889115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2890115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdOne));
2891115cd2caSopenharmony_ci    predicates.Or();
2892115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactIdTwo));
2893115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareValuesBucket> values =
2894115cd2caSopenharmony_ci        std::make_shared<OHOS::DataShare::DataShareValuesBucket>(rawValuesBucket);
2895115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataSharePredicates> executePredicates =
2896115cd2caSopenharmony_ci        std::make_shared<OHOS::DataShare::DataSharePredicates>(predicates);
2897115cd2caSopenharmony_ci    std::shared_ptr<Uri> uri = std::make_shared<Uri>(ProfileUri::RAW_CONTACT);
2898115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareOperation> operation =
2899115cd2caSopenharmony_ci        OHOS::DataShare::DataShareOperation::NewUpdateBuilder(uri)
2900115cd2caSopenharmony_ci            ->WithValuesBucket(values)
2901115cd2caSopenharmony_ci            ->WithPredicatesBackReference(0, 0)
2902115cd2caSopenharmony_ci            ->WithPredicates(executePredicates)
2903115cd2caSopenharmony_ci            ->WithInterruptionAllowed(true)
2904115cd2caSopenharmony_ci            ->Build();
2905115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareOperation>> executeBatchOperations;
2906115cd2caSopenharmony_ci    executeBatchOperations.push_back(operation);
2907115cd2caSopenharmony_ci    InitAbility();
2908115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareResult>> dataShareResult =
2909115cd2caSopenharmony_ci        contactsDataAbility.ExecuteBatch(executeBatchOperations);
2910115cd2caSopenharmony_ci    EXPECT_EQ(0, dataShareResult[0]->GetCount());
2911115cd2caSopenharmony_ci    std::string tableName = ContactTabName::RAW_CONTACT;
2912115cd2caSopenharmony_ci    std::vector<std::string> columnQuery;
2913115cd2caSopenharmony_ci    columnQuery.push_back("display_name");
2914115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(tableName, columnQuery, predicates);
2915115cd2caSopenharmony_ci    int rowCount = 0;
2916115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2917115cd2caSopenharmony_ci    EXPECT_EQ(2, rowCount);
2918115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
2919115cd2caSopenharmony_ci    listValue.push_back(rawValuesBucket);
2920115cd2caSopenharmony_ci    listValue.push_back(rawValuesBucket);
2921115cd2caSopenharmony_ci    CheckResultSetList(listValue, resultSet, "contactProfile_Update_test_5800");
2922115cd2caSopenharmony_ci    ClearContacts();
2923115cd2caSopenharmony_ci}
2924115cd2caSopenharmony_ci
2925115cd2caSopenharmony_ci/*
2926115cd2caSopenharmony_ci * @tc.number  contactProfile_BatchInsertAndDelete_test_5900
2927115cd2caSopenharmony_ci * @tc.name    Batch add / delete contact blocklist
2928115cd2caSopenharmony_ci * @tc.desc    Ability to add and remove contacts from the blocklist in batches
2929115cd2caSopenharmony_ci * @tc.level   Level1
2930115cd2caSopenharmony_ci * @tc.size    MediumTest
2931115cd2caSopenharmony_ci * @tc.type    Function
2932115cd2caSopenharmony_ci */
2933115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_BatchInsertAndDelete_test_5900, testing::ext::TestSize.Level1)
2934115cd2caSopenharmony_ci{
2935115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_BatchInsertAndDelete_test_5900 is starting! ---");
2936115cd2caSopenharmony_ci    OHOS::Uri uriContactBlocklist(ProfileUri::BLOCKLIST);
2937115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactBlocklistValuesOne;
2938115cd2caSopenharmony_ci    OHOS::Contacts::RandomNumberUtils randomNumberUtils;
2939115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(9);
2940115cd2caSopenharmony_ci    contactBlocklistValuesOne.Put("phone_number", phoneNumber);
2941115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactBlocklistValuesTwo;
2942115cd2caSopenharmony_ci    contactBlocklistValuesTwo.Put("phone_number", phoneNumber);
2943115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactBlocklistValuesThree;
2944115cd2caSopenharmony_ci    contactBlocklistValuesThree.Put("phone_number", phoneNumber);
2945115cd2caSopenharmony_ci
2946115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
2947115cd2caSopenharmony_ci    listAddBluk.push_back(contactBlocklistValuesOne);
2948115cd2caSopenharmony_ci    listAddBluk.push_back(contactBlocklistValuesTwo);
2949115cd2caSopenharmony_ci    listAddBluk.push_back(contactBlocklistValuesThree);
2950115cd2caSopenharmony_ci    int batchInsertCode = contactsDataAbility.BatchInsert(uriContactBlocklist, listAddBluk);
2951115cd2caSopenharmony_ci    EXPECT_EQ(batchInsertCode, 0);
2952115cd2caSopenharmony_ci
2953115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
2954115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", std::string(phoneNumber));
2955115cd2caSopenharmony_ci    predicates.Or();
2956115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", std::string(phoneNumber));
2957115cd2caSopenharmony_ci    std::string contactBlocklist = ContactTabName::CONTACT_BLOCKLIST;
2958115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactBlocklist, predicates);
2959115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
2960115cd2caSopenharmony_ci    std::vector<std::string> columns;
2961115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
2962115cd2caSopenharmony_ci        ContactQuery(contactBlocklist, columns, predicates);
2963115cd2caSopenharmony_ci    int rowCount = 0;
2964115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
2965115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
2966115cd2caSopenharmony_ci    ClearContacts();
2967115cd2caSopenharmony_ci}
2968115cd2caSopenharmony_ci
2969115cd2caSopenharmony_ci/*
2970115cd2caSopenharmony_ci * @tc.number  contactProfile_BatchInsertAndDelete_test_6000
2971115cd2caSopenharmony_ci * @tc.name    Batch add contacts to the group, and then delete contacts from the group
2972115cd2caSopenharmony_ci * @tc.desc    Ability to join or remove contacts from groups in bulk
2973115cd2caSopenharmony_ci * @tc.level   Level1
2974115cd2caSopenharmony_ci * @tc.size    MediumTest
2975115cd2caSopenharmony_ci * @tc.type    Function
2976115cd2caSopenharmony_ci */
2977115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, contactProfile_BatchInsertAndDelete_test_6000, testing::ext::TestSize.Level1)
2978115cd2caSopenharmony_ci{
2979115cd2caSopenharmony_ci    HILOG_INFO("--- contactProfile_BatchInsertAndDelete_test_6000 is staring! ---");
2980115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesGroup;
2981115cd2caSopenharmony_ci    int64_t groupIdOne = GroupsInsert("TestFourth", valuesGroup);
2982115cd2caSopenharmony_ci    EXPECT_GT(groupIdOne, 0);
2983115cd2caSopenharmony_ci
2984115cd2caSopenharmony_ci    valuesGroup.Clear();
2985115cd2caSopenharmony_ci    int64_t groupIdTwo = GroupsInsert("TestFifth", valuesGroup);
2986115cd2caSopenharmony_ci    EXPECT_GT(groupIdTwo, 0);
2987115cd2caSopenharmony_ci
2988115cd2caSopenharmony_ci    valuesGroup.Clear();
2989115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
2990115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("xiaocheng", rawContactValues);
2991115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
2992115cd2caSopenharmony_ci
2993115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ProfileUri::CONTACT_DATA);
2994115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesOne;
2995115cd2caSopenharmony_ci    contactDataValuesOne.Put("raw_contact_id", rawContactId);
2996115cd2caSopenharmony_ci    contactDataValuesOne.Put("content_type", std::string("group_membership"));
2997115cd2caSopenharmony_ci    contactDataValuesOne.Put("detail_info", std::to_string(groupIdOne));
2998115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket contactDataValuesTwo;
2999115cd2caSopenharmony_ci    contactDataValuesTwo.Put("raw_contact_id", rawContactId);
3000115cd2caSopenharmony_ci    contactDataValuesTwo.Put("content_type", std::string("group_membership"));
3001115cd2caSopenharmony_ci    contactDataValuesTwo.Put("detail_info", std::to_string(groupIdTwo));
3002115cd2caSopenharmony_ci
3003115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
3004115cd2caSopenharmony_ci    listAddBluk.push_back(contactDataValuesOne);
3005115cd2caSopenharmony_ci    listAddBluk.push_back(contactDataValuesTwo);
3006115cd2caSopenharmony_ci    int batchInserCode = contactsDataAbility.BatchInsert(uriContactData, listAddBluk);
3007115cd2caSopenharmony_ci    EXPECT_EQ(batchInserCode, 0);
3008115cd2caSopenharmony_ci
3009115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3010115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
3011115cd2caSopenharmony_ci    predicates.And();
3012115cd2caSopenharmony_ci    predicates.EqualTo("detail_info", std::to_string(groupIdOne));
3013115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
3014115cd2caSopenharmony_ci    int deleteCode = ContactDelete(contactData, predicates);
3015115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
3016115cd2caSopenharmony_ci
3017115cd2caSopenharmony_ci    std::vector<std::string> columns;
3018115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
3019115cd2caSopenharmony_ci    int rowCount = 0;
3020115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
3021115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
3022115cd2caSopenharmony_ci    ClearContacts();
3023115cd2caSopenharmony_ci}
3024115cd2caSopenharmony_ci
3025115cd2caSopenharmony_ci/*
3026115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_Insert_test_6100
3027115cd2caSopenharmony_ci * @tc.name    When inserting a contact, a field or table name that does not exist is passed in
3028115cd2caSopenharmony_ci * @tc.desc    Exception use case
3029115cd2caSopenharmony_ci * @tc.level   Level1
3030115cd2caSopenharmony_ci * @tc.size    MediumTest
3031115cd2caSopenharmony_ci * @tc.type    Function
3032115cd2caSopenharmony_ci */
3033115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_Insert_test_6100, testing::ext::TestSize.Level1)
3034115cd2caSopenharmony_ci{
3035115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_contactProfile_Insert_test_6100 is starting! ---");
3036115cd2caSopenharmony_ci
3037115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
3038115cd2caSopenharmony_ci    OHOS::Uri errorUri(ProfileUri::ERROR_URI);
3039115cd2caSopenharmony_ci
3040115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
3041115cd2caSopenharmony_ci    rawContactValues.Put("display_names", "liming");
3042115cd2caSopenharmony_ci    int64_t rawontactId = contactsDataAbility.Insert(uriRawContact, rawContactValues);
3043115cd2caSopenharmony_ci    HILOG_INFO("abnormal_contactProfile_Insert_test_6100 : rawontactId = %{public}ld", rawontactId);
3044115cd2caSopenharmony_ci    EXPECT_EQ(rawontactId, -1);
3045115cd2caSopenharmony_ci
3046115cd2caSopenharmony_ci    rawContactValues.Clear();
3047115cd2caSopenharmony_ci    rawContactValues.Put("display_name", "liming");
3048115cd2caSopenharmony_ci    rawontactId = contactsDataAbility.Insert(errorUri, rawContactValues);
3049115cd2caSopenharmony_ci    EXPECT_EQ(rawontactId, -1);
3050115cd2caSopenharmony_ci    ClearContacts();
3051115cd2caSopenharmony_ci}
3052115cd2caSopenharmony_ci
3053115cd2caSopenharmony_ci/*
3054115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_Insert_test_6200
3055115cd2caSopenharmony_ci * @tc.name    Verify contact_ Required field in data table (type_id)
3056115cd2caSopenharmony_ci * @tc.desc    Added ability to contactProfile_data
3057115cd2caSopenharmony_ci * @tc.level   Level1
3058115cd2caSopenharmony_ci * @tc.size    MediumTest
3059115cd2caSopenharmony_ci * @tc.type    Function
3060115cd2caSopenharmony_ci */
3061115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_Insert_test_6200, testing::ext::TestSize.Level1)
3062115cd2caSopenharmony_ci{
3063115cd2caSopenharmony_ci    HILOG_INFO("-----abnormal_contactProfile_Insert_test_6200 is starting!-----");
3064115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
3065115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
3066115cd2caSopenharmony_ci    std::vector<std::string> columns;
3067115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
3068115cd2caSopenharmony_ci    GetAllContactDataColumns(columnsInt, columnsStr);
3069115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
3070115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawValuesBucket;
3071115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("lock_type_id", rawValuesBucket);
3072115cd2caSopenharmony_ci    valuesBucket.Put("raw_contact_id", rawContactId);
3073115cd2caSopenharmony_ci    int ContactDataId = ContactDataInsertValues(valuesBucket);
3074115cd2caSopenharmony_ci    EXPECT_EQ(ContactDataId, -1);
3075115cd2caSopenharmony_ci
3076115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
3077115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3078115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
3079115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
3080115cd2caSopenharmony_ci
3081115cd2caSopenharmony_ci    // resultSet count 0
3082115cd2caSopenharmony_ci    int rowCount = -1;
3083115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
3084115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
3085115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "abnormal_contactProfile_Insert_test_6200");
3086115cd2caSopenharmony_ci    ClearContacts();
3087115cd2caSopenharmony_ci}
3088115cd2caSopenharmony_ci
3089115cd2caSopenharmony_ci/*
3090115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_Insert_test_6300
3091115cd2caSopenharmony_ci * @tc.name    Verify contact_ Required field in data table (raw_contact_id)
3092115cd2caSopenharmony_ci * @tc.desc    Added ability to contactProfile_data
3093115cd2caSopenharmony_ci * @tc.level   Level1
3094115cd2caSopenharmony_ci * @tc.size    MediumTest
3095115cd2caSopenharmony_ci *
3096115cd2caSopenharmony_ci * @tc.type    Function
3097115cd2caSopenharmony_ci */
3098115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_Insert_test_6300, testing::ext::TestSize.Level1)
3099115cd2caSopenharmony_ci{
3100115cd2caSopenharmony_ci    HILOG_INFO("-----abnormal_contactProfile_Insert_test_6300 is starting!-----");
3101115cd2caSopenharmony_ci    std::vector<std::string> columnsInt;
3102115cd2caSopenharmony_ci    std::vector<std::string> columnsStr;
3103115cd2caSopenharmony_ci    std::vector<std::string> columns;
3104115cd2caSopenharmony_ci    std::string contactData = ContactTabName::CONTACT_DATA;
3105115cd2caSopenharmony_ci    GetAllContactDataColumns(columnsInt, columnsStr);
3106115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr);
3107115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawValuesBucket;
3108115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("lock_raw_contact_id", rawValuesBucket);
3109115cd2caSopenharmony_ci    valuesBucket.Put("type_id", 6);
3110115cd2caSopenharmony_ci    int ContactDataId = ContactDataInsertValues(valuesBucket);
3111115cd2caSopenharmony_ci    EXPECT_EQ(ContactDataId, -1);
3112115cd2caSopenharmony_ci
3113115cd2caSopenharmony_ci    MergeColumns(columns, columnsInt, columnsStr);
3114115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3115115cd2caSopenharmony_ci    predicates.EqualTo("raw_contact_id", std::to_string(rawContactId));
3116115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
3117115cd2caSopenharmony_ci
3118115cd2caSopenharmony_ci    // resultSet count 0
3119115cd2caSopenharmony_ci    int rowCount = -1;
3120115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
3121115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
3122115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "abnormal_contactProfile_Insert_test_6300");
3123115cd2caSopenharmony_ci    ClearContacts();
3124115cd2caSopenharmony_ci}
3125115cd2caSopenharmony_ci
3126115cd2caSopenharmony_ci/*
3127115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_Update_test_6400
3128115cd2caSopenharmony_ci * @tc.name    When modifying, incorrect field or table name or nonexistent value is passed in
3129115cd2caSopenharmony_ci * @tc.desc    Exception use case
3130115cd2caSopenharmony_ci * @tc.level   Level1
3131115cd2caSopenharmony_ci * @tc.size    MediumTest
3132115cd2caSopenharmony_ci * @tc.type    Function
3133115cd2caSopenharmony_ci */
3134115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_Update_test_6400, testing::ext::TestSize.Level1)
3135115cd2caSopenharmony_ci{
3136115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_contactProfile_Update_test_6400 is starting! ---");
3137115cd2caSopenharmony_ci    OHOS::Uri errorUri(ProfileUri::ERROR_URI);
3138115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
3139115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("zhangming", rawContactValues);
3140115cd2caSopenharmony_ci    HILOG_INFO("abnormal_contactProfile_Update_test_6400 : rawContactId = %{public}ld", rawContactId);
3141115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
3142115cd2caSopenharmony_ci
3143115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
3144115cd2caSopenharmony_ci    updateValues.Put("display_names", "dongming");
3145115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3146115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
3147115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
3148115cd2caSopenharmony_ci    int updateCode = ContactUpdate(rawContacts, updateValues, predicates);
3149115cd2caSopenharmony_ci    HILOG_INFO("abnormal_contactProfile_Update_test_6400: updateCode = %{public}d", updateCode);
3150115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, -1);
3151115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates, rawContactValues, "abnormal_contactProfile_Update_test_6400");
3152115cd2caSopenharmony_ci
3153115cd2caSopenharmony_ci    updateValues.Clear();
3154115cd2caSopenharmony_ci    updateValues.Put("display_name", "dongming");
3155115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
3156115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawContactId));
3157115cd2caSopenharmony_ci    updateCode = contactsDataAbility.Update(errorUri, predicates2, updateValues);
3158115cd2caSopenharmony_ci    HILOG_INFO("abnormal_contactProfile_Update_test_6400: updateCode = %{public}d", updateCode);
3159115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, -1);
3160115cd2caSopenharmony_ci    QueryAndExpectResult(rawContacts, predicates2, rawContactValues, "abnormal_contactProfile_Update_test_6400");
3161115cd2caSopenharmony_ci
3162115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
3163115cd2caSopenharmony_ci    predicates3.EqualTo("id", "100000");
3164115cd2caSopenharmony_ci    updateCode = ContactUpdate(rawContacts, updateValues, predicates3);
3165115cd2caSopenharmony_ci    HILOG_INFO("abnormal_contactProfile_Update_test_6400: updateCode = %{public}d", updateCode);
3166115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
3167115cd2caSopenharmony_ci    ClearContacts();
3168115cd2caSopenharmony_ci}
3169115cd2caSopenharmony_ci
3170115cd2caSopenharmony_ci/*
3171115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_Query_test_6500
3172115cd2caSopenharmony_ci * @tc.name    An incorrect field was passed in while querying
3173115cd2caSopenharmony_ci * @tc.desc    Exception use case
3174115cd2caSopenharmony_ci * @tc.level   Level1
3175115cd2caSopenharmony_ci * @tc.size    MediumTest
3176115cd2caSopenharmony_ci * @tc.type    Function
3177115cd2caSopenharmony_ci */
3178115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_Query_test_6500, testing::ext::TestSize.Level1)
3179115cd2caSopenharmony_ci{
3180115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_contactProfile_Query_test_6500 is starting! ---");
3181115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
3182115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("dongming", rawContactValues);
3183115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
3184115cd2caSopenharmony_ci
3185115cd2caSopenharmony_ci    std::vector<std::string> columns;
3186115cd2caSopenharmony_ci    columns.push_back("display_names");
3187115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3188115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawContactId));
3189115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
3190115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(rawContacts, columns, predicates);
3191115cd2caSopenharmony_ci
3192115cd2caSopenharmony_ci    int rowCount = -2;
3193115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
3194115cd2caSopenharmony_ci    EXPECT_EQ(-1, rowCount);
3195115cd2caSopenharmony_ci    ClearContacts();
3196115cd2caSopenharmony_ci}
3197115cd2caSopenharmony_ci
3198115cd2caSopenharmony_ci/*
3199115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_Query_test_6600
3200115cd2caSopenharmony_ci * @tc.name    Bad URI passed in when querying
3201115cd2caSopenharmony_ci * @tc.desc    Exception use case
3202115cd2caSopenharmony_ci * @tc.level   Level1
3203115cd2caSopenharmony_ci * @tc.size    MediumTest
3204115cd2caSopenharmony_ci * @tc.type    Function
3205115cd2caSopenharmony_ci */
3206115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_Query_test_6600, testing::ext::TestSize.Level1)
3207115cd2caSopenharmony_ci{
3208115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_contactProfile_Query_test_6600 is starting! ---");
3209115cd2caSopenharmony_ci    std::string tag("abnormal_contactProfile_Query_test_6600");
3210115cd2caSopenharmony_ci
3211115cd2caSopenharmony_ci    OHOS::Uri errorUri(ProfileUri::ERROR_URI);
3212115cd2caSopenharmony_ci
3213115cd2caSopenharmony_ci    std::vector<std::string> columns;
3214115cd2caSopenharmony_ci    columns.push_back("id");
3215115cd2caSopenharmony_ci    columns.push_back("display_name");
3216115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3217115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
3218115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
3219115cd2caSopenharmony_ci        contactsDataAbility.Query(errorUri, predicates, columns);
3220115cd2caSopenharmony_ci    EXPECT_EQ(resultSet, nullptr);
3221115cd2caSopenharmony_ci    ClearContacts();
3222115cd2caSopenharmony_ci}
3223115cd2caSopenharmony_ci
3224115cd2caSopenharmony_ci/*
3225115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_Delete_test_6700
3226115cd2caSopenharmony_ci * @tc.name    When deleting, an incorrect URI, field or non-existent value is passed in
3227115cd2caSopenharmony_ci * @tc.desc    Exception use case
3228115cd2caSopenharmony_ci * @tc.level   Level1
3229115cd2caSopenharmony_ci * @tc.size    MediumTest
3230115cd2caSopenharmony_ci * @tc.type    Function
3231115cd2caSopenharmony_ci */
3232115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_Delete_test_6700, testing::ext::TestSize.Level1)
3233115cd2caSopenharmony_ci{
3234115cd2caSopenharmony_ci    HILOG_INFO("-------abnormal_contactProfile_Delete_test_6700 is starting!-------");
3235115cd2caSopenharmony_ci    OHOS::Uri errorUri(ProfileUri::ERROR_URI);
3236115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
3237115cd2caSopenharmony_ci    int64_t rawContactId = RawContactInsert("zhangming", values);
3238115cd2caSopenharmony_ci    EXPECT_GT(rawContactId, 0);
3239115cd2caSopenharmony_ci
3240115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3241115cd2caSopenharmony_ci    predicates.EqualTo("ids", std::to_string(rawContactId));
3242115cd2caSopenharmony_ci    std::string rawContacts = ContactTabName::RAW_CONTACT;
3243115cd2caSopenharmony_ci    int deleteCode = ContactDelete(rawContacts, predicates);
3244115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, -1);
3245115cd2caSopenharmony_ci
3246115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicatesQuery;
3247115cd2caSopenharmony_ci    predicatesQuery.EqualTo("id", std::to_string(rawContactId));
3248115cd2caSopenharmony_ci    std::vector<std::string> columns;
3249115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
3250115cd2caSopenharmony_ci        ContactQuery(rawContacts, columns, predicatesQuery);
3251115cd2caSopenharmony_ci    int rowCount = 0;
3252115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
3253115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
3254115cd2caSopenharmony_ci    resultSet->Close();
3255115cd2caSopenharmony_ci
3256115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
3257115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawContactId));
3258115cd2caSopenharmony_ci    deleteCode = contactsDataAbility.Delete(errorUri, predicates2);
3259115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, -1);
3260115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetUri =
3261115cd2caSopenharmony_ci        ContactQuery(rawContacts, columns, predicatesQuery);
3262115cd2caSopenharmony_ci    int rowCountUri = 0;
3263115cd2caSopenharmony_ci    resultSetUri->GetRowCount(rowCountUri);
3264115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCountUri);
3265115cd2caSopenharmony_ci    resultSetUri->Close();
3266115cd2caSopenharmony_ci
3267115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
3268115cd2caSopenharmony_ci    predicates3.EqualTo("id", "10000000");
3269115cd2caSopenharmony_ci    deleteCode = ContactDelete(rawContacts, predicates3);
3270115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, -1);
3271115cd2caSopenharmony_ci
3272115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetId =
3273115cd2caSopenharmony_ci        ContactQuery(rawContacts, columns, predicatesQuery);
3274115cd2caSopenharmony_ci    int rowCountId = 0;
3275115cd2caSopenharmony_ci    resultSetId->GetRowCount(rowCountId);
3276115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCountId);
3277115cd2caSopenharmony_ci    resultSetId->Close();
3278115cd2caSopenharmony_ci    ClearContacts();
3279115cd2caSopenharmony_ci}
3280115cd2caSopenharmony_ci
3281115cd2caSopenharmony_ci/*
3282115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_BatchInsert_test_6800
3283115cd2caSopenharmony_ci * @tc.name    When adding contacts in batch, several of them fail. Check the processing logic
3284115cd2caSopenharmony_ci * @tc.desc    Exception use case
3285115cd2caSopenharmony_ci * @tc.level   Level1
3286115cd2caSopenharmony_ci * @tc.size    MediumTest
3287115cd2caSopenharmony_ci * @tc.type    Function
3288115cd2caSopenharmony_ci */
3289115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_BatchInsert_test_6800, testing::ext::TestSize.Level1)
3290115cd2caSopenharmony_ci{
3291115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_contactProfile_BatchInsert_test_6800 is starting! ---");
3292115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
3293115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
3294115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
3295115cd2caSopenharmony_ci    int batchInserCode = 0;
3296115cd2caSopenharmony_ci    for (int i = 0; i < 10; i++) {
3297115cd2caSopenharmony_ci        listAddBluk.clear();
3298115cd2caSopenharmony_ci        for (int j = 10 * i + 1; j <= 10 * (i + 1); j++) {
3299115cd2caSopenharmony_ci            rawContactValues.Clear();
3300115cd2caSopenharmony_ci            std::string name("zhangming");
3301115cd2caSopenharmony_ci            name.append(std::to_string(j));
3302115cd2caSopenharmony_ci            if (j == 14 || j == 27 || j == 57) {
3303115cd2caSopenharmony_ci                rawContactValues.Put("display_names", name);
3304115cd2caSopenharmony_ci            } else {
3305115cd2caSopenharmony_ci                rawContactValues.Put("display_name", name);
3306115cd2caSopenharmony_ci            }
3307115cd2caSopenharmony_ci            listAddBluk.push_back(rawContactValues);
3308115cd2caSopenharmony_ci        }
3309115cd2caSopenharmony_ci        batchInserCode = contactsDataAbility.BatchInsert(uriRawContact, listAddBluk);
3310115cd2caSopenharmony_ci        HILOG_INFO("abnormal_contactProfile_BatchInsert_test_6800 : batchInserCode = %{public}d", batchInserCode);
3311115cd2caSopenharmony_ci        if (batchInserCode == 0) {
3312115cd2caSopenharmony_ci            HILOG_INFO("abnormal_contactProfile_BatchInsert_test_6800 batch insert success!");
3313115cd2caSopenharmony_ci        } else {
3314115cd2caSopenharmony_ci            HILOG_INFO("abnormal_contactProfile_BatchInsert_test_6800 batch insert fail!");
3315115cd2caSopenharmony_ci            EXPECT_EQ(batchInserCode, -1);
3316115cd2caSopenharmony_ci        }
3317115cd2caSopenharmony_ci    }
3318115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3319115cd2caSopenharmony_ci    predicates.NotEqualTo("id", "0");
3320115cd2caSopenharmony_ci    predicates.And();
3321115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
3322115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContact, predicates);
3323115cd2caSopenharmony_ci    int time = 20000;
3324115cd2caSopenharmony_ci    std::chrono::milliseconds dura(time);
3325115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
3326115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
3327115cd2caSopenharmony_ci    OHOS::Uri uriRawContactComplete(ProfileUri::DELETED_RAW_CONTACT);
3328115cd2caSopenharmony_ci    predicates2.NotEqualTo("id", "0");
3329115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContactComplete, predicates2);
3330115cd2caSopenharmony_ci}
3331115cd2caSopenharmony_ci
3332115cd2caSopenharmony_ci/*
3333115cd2caSopenharmony_ci * @tc.number  abnormal_contactProfile_BatchInsert_test_6900
3334115cd2caSopenharmony_ci * @tc.name    When adding contacts in batch, item 500 fails. Check the subsequent processing logic
3335115cd2caSopenharmony_ci * @tc.desc    Exception use case
3336115cd2caSopenharmony_ci * @tc.level   Level1
3337115cd2caSopenharmony_ci * @tc.size    MediumTest
3338115cd2caSopenharmony_ci * @tc.type    Function
3339115cd2caSopenharmony_ci */
3340115cd2caSopenharmony_ciHWTEST_F(ContactProfileTest, abnormal_contactProfile_BatchInsert_test_6900, testing::ext::TestSize.Level1)
3341115cd2caSopenharmony_ci{
3342115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_contactProfile_BatchInsert_test_6900 is starting! ---");
3343115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ProfileUri::RAW_CONTACT);
3344115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
3345115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
3346115cd2caSopenharmony_ci    for (int i = 0; i < 1000; i++) {
3347115cd2caSopenharmony_ci        rawContactValues.Clear();
3348115cd2caSopenharmony_ci        std::string name("xiaoyuan");
3349115cd2caSopenharmony_ci        name.append(std::to_string(i));
3350115cd2caSopenharmony_ci        if (i == 500) {
3351115cd2caSopenharmony_ci            rawContactValues.Put("display_names", name);
3352115cd2caSopenharmony_ci        } else {
3353115cd2caSopenharmony_ci            rawContactValues.Put("display_name", name);
3354115cd2caSopenharmony_ci        }
3355115cd2caSopenharmony_ci        listAddBluk.push_back(rawContactValues);
3356115cd2caSopenharmony_ci    }
3357115cd2caSopenharmony_ci    int batchInserCode = contactsDataAbility.BatchInsert(uriRawContact, listAddBluk);
3358115cd2caSopenharmony_ci    HILOG_INFO("abnormal_contactProfile_BatchInsert_test_6900 : batchInserCode = %{public}d", batchInserCode);
3359115cd2caSopenharmony_ci    if (batchInserCode == 0) {
3360115cd2caSopenharmony_ci        HILOG_INFO("abnormal_contactProfile_BatchInsert_test_6900 batch insert success!");
3361115cd2caSopenharmony_ci    } else {
3362115cd2caSopenharmony_ci        HILOG_ERROR("abnormal_contactProfile_BatchInsert_test_6900 batch insert fail!");
3363115cd2caSopenharmony_ci        EXPECT_EQ(batchInserCode, -1);
3364115cd2caSopenharmony_ci    }
3365115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
3366115cd2caSopenharmony_ci    predicates.NotEqualTo("id", "0");
3367115cd2caSopenharmony_ci    predicates.And();
3368115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
3369115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContact, predicates);
3370115cd2caSopenharmony_ci    int time = 20000;
3371115cd2caSopenharmony_ci    std::chrono::milliseconds dura(time);
3372115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
3373115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
3374115cd2caSopenharmony_ci    OHOS::Uri uriRawContactComplete(ProfileUri::DELETED_RAW_CONTACT);
3375115cd2caSopenharmony_ci    predicates2.NotEqualTo("id", "0");
3376115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContactComplete, predicates2);
3377115cd2caSopenharmony_ci}
3378115cd2caSopenharmony_ci} // namespace Test
3379115cd2caSopenharmony_ci} // namespace Contacts