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