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 "contactgroup_test.h" 17115cd2caSopenharmony_ci 18115cd2caSopenharmony_ci#include "test_common.h" 19115cd2caSopenharmony_ci 20115cd2caSopenharmony_cinamespace Contacts { 21115cd2caSopenharmony_cinamespace Test { 22115cd2caSopenharmony_ciContactGroupTest::ContactGroupTest() 23115cd2caSopenharmony_ci{ 24115cd2caSopenharmony_ci} 25115cd2caSopenharmony_ci 26115cd2caSopenharmony_ciContactGroupTest::~ContactGroupTest() 27115cd2caSopenharmony_ci{ 28115cd2caSopenharmony_ci} 29115cd2caSopenharmony_ci 30115cd2caSopenharmony_civoid ContactGroupTest::ClearData() 31115cd2caSopenharmony_ci{ 32115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 33115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 34115cd2caSopenharmony_ci std::string groups = "groups"; 35115cd2caSopenharmony_ci int deleteCode = ContactDelete(groups, predicates); 36115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 37115cd2caSopenharmony_ci} 38115cd2caSopenharmony_ci 39115cd2caSopenharmony_ciint64_t ContactGroupTest::GroupsInsert(std::string groupName, OHOS::DataShare::DataShareValuesBucket &groupValues) 40115cd2caSopenharmony_ci{ 41115cd2caSopenharmony_ci OHOS::Uri uriGroups(ContactsUri::GROUPS); 42115cd2caSopenharmony_ci groupValues.Put("group_name", groupName); 43115cd2caSopenharmony_ci int64_t code = contactsDataAbility.Insert(uriGroups, groupValues); 44115cd2caSopenharmony_ci return code; 45115cd2caSopenharmony_ci} 46115cd2caSopenharmony_ci 47115cd2caSopenharmony_ciint ContactGroupTest::ContactUpdate(const std::string &tableName, OHOS::DataShare::DataShareValuesBucket updateValues, 48115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates) 49115cd2caSopenharmony_ci{ 50115cd2caSopenharmony_ci int code = 0; 51115cd2caSopenharmony_ci if (tableName == ContactTabName::RAW_CONTACT) { 52115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 53115cd2caSopenharmony_ci code = contactsDataAbility.Update(uriRawContact, predicates, updateValues); 54115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_DATA) { 55115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 56115cd2caSopenharmony_ci code = contactsDataAbility.Update(uriContactData, predicates, updateValues); 57115cd2caSopenharmony_ci } else if (tableName == ContactTabName::GROUPS) { 58115cd2caSopenharmony_ci OHOS::Uri uriGroups(ContactsUri::GROUPS); 59115cd2caSopenharmony_ci code = contactsDataAbility.Update(uriGroups, predicates, updateValues); 60115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) { 61115cd2caSopenharmony_ci OHOS::Uri uriBlocklist(ContactsUri::BLOCKLIST); 62115cd2caSopenharmony_ci code = contactsDataAbility.Update(uriBlocklist, predicates, updateValues); 63115cd2caSopenharmony_ci } else { 64115cd2caSopenharmony_ci HILOG_ERROR("ContactsDataAbility ====>no match uri action"); 65115cd2caSopenharmony_ci } 66115cd2caSopenharmony_ci return code; 67115cd2caSopenharmony_ci} 68115cd2caSopenharmony_ci 69115cd2caSopenharmony_ciint ContactGroupTest::ContactDelete(const std::string &tableName, OHOS::DataShare::DataSharePredicates predicates) 70115cd2caSopenharmony_ci{ 71115cd2caSopenharmony_ci int code = 0; 72115cd2caSopenharmony_ci if (tableName == ContactTabName::RAW_CONTACT) { 73115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 74115cd2caSopenharmony_ci code = contactsDataAbility.Delete(uriRawContact, predicates); 75115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_DATA) { 76115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 77115cd2caSopenharmony_ci code = contactsDataAbility.Delete(uriContactData, predicates); 78115cd2caSopenharmony_ci } else if (tableName == ContactTabName::GROUPS) { 79115cd2caSopenharmony_ci OHOS::Uri uriGroups(ContactsUri::GROUPS); 80115cd2caSopenharmony_ci code = contactsDataAbility.Delete(uriGroups, predicates); 81115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) { 82115cd2caSopenharmony_ci OHOS::Uri uriBlocklist(ContactsUri::BLOCKLIST); 83115cd2caSopenharmony_ci code = contactsDataAbility.Delete(uriBlocklist, predicates); 84115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT) { 85115cd2caSopenharmony_ci OHOS::Uri uriContact(ContactsUri::CONTACT); 86115cd2caSopenharmony_ci code = contactsDataAbility.Delete(uriContact, predicates); 87115cd2caSopenharmony_ci } else { 88115cd2caSopenharmony_ci HILOG_ERROR("ContactsDataAbility ====>no match uri action"); 89115cd2caSopenharmony_ci } 90115cd2caSopenharmony_ci return code; 91115cd2caSopenharmony_ci} 92115cd2caSopenharmony_ci 93115cd2caSopenharmony_cistd::shared_ptr<OHOS::DataShare::DataShareResultSet> ContactGroupTest::ContactQuery( 94115cd2caSopenharmony_ci const std::string &tableName, std::vector<std::string> columns, OHOS::DataShare::DataSharePredicates predicates) 95115cd2caSopenharmony_ci{ 96115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet; 97115cd2caSopenharmony_ci if (tableName == ContactTabName::RAW_CONTACT) { 98115cd2caSopenharmony_ci OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT); 99115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriRawContact, predicates, columns); 100115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_DATA) { 101115cd2caSopenharmony_ci OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA); 102115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriContactData, predicates, columns); 103115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT) { 104115cd2caSopenharmony_ci OHOS::Uri uriContact(ContactsUri::CONTACT); 105115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriContact, predicates, columns); 106115cd2caSopenharmony_ci } else if (tableName == ContactTabName::GROUPS) { 107115cd2caSopenharmony_ci OHOS::Uri uriGroups(ContactsUri::GROUPS); 108115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriGroups, predicates, columns); 109115cd2caSopenharmony_ci } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) { 110115cd2caSopenharmony_ci OHOS::Uri uriBlocklist(ContactsUri::BLOCKLIST); 111115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriBlocklist, predicates, columns); 112115cd2caSopenharmony_ci } else if (tableName == ContactTabName::DELETED_RAW_CONTACT) { 113115cd2caSopenharmony_ci OHOS::Uri uriDeletedRawContact(ContactsUri::DELETED_RAW_CONTACT); 114115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriDeletedRawContact, predicates, columns); 115115cd2caSopenharmony_ci } else if (tableName == ContactTabName::SEARCH_CONTACT) { 116115cd2caSopenharmony_ci OHOS::Uri uriSearchContact(ContactsUri::SEARCH); 117115cd2caSopenharmony_ci resultSet = contactsDataAbility.Query(uriSearchContact, predicates, columns); 118115cd2caSopenharmony_ci } else { 119115cd2caSopenharmony_ci HILOG_ERROR("ContactsDataAbility ====>no match uri action"); 120115cd2caSopenharmony_ci } 121115cd2caSopenharmony_ci return resultSet; 122115cd2caSopenharmony_ci} 123115cd2caSopenharmony_ci 124115cd2caSopenharmony_civoid ContactGroupTest::QueryAndExpectResult(const std::string &tableName, 125115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates, OHOS::DataShare::DataShareValuesBucket &values, 126115cd2caSopenharmony_ci std::string testName) 127115cd2caSopenharmony_ci{ 128115cd2caSopenharmony_ci std::vector<std::string> columns; 129115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(tableName, columns, predicates); 130115cd2caSopenharmony_ci CheckResultSet(values, resultSet, testName); 131115cd2caSopenharmony_ci} 132115cd2caSopenharmony_ci 133115cd2caSopenharmony_civoid ContactGroupTest::GetAllGroupsColumns(std::vector<std::string> &columnInt, std::vector<std::string> &columnStr) 134115cd2caSopenharmony_ci{ 135115cd2caSopenharmony_ci columnInt.push_back("account_id"); 136115cd2caSopenharmony_ci columnInt.push_back("ringtone_modify_time"); 137115cd2caSopenharmony_ci columnInt.push_back("lastest_modify_time"); 138115cd2caSopenharmony_ci 139115cd2caSopenharmony_ci columnStr.push_back("group_name"); 140115cd2caSopenharmony_ci columnStr.push_back("group_notes"); 141115cd2caSopenharmony_ci columnStr.push_back("group_ringtone"); 142115cd2caSopenharmony_ci} 143115cd2caSopenharmony_ci 144115cd2caSopenharmony_civoid ContactGroupTest::MergeColumns( 145115cd2caSopenharmony_ci std::vector<std::string> &columns, std::vector<std::string> &columnsInt, std::vector<std::string> &columnsStr) 146115cd2caSopenharmony_ci{ 147115cd2caSopenharmony_ci int columnsIntSize = columnsInt.size(); 148115cd2caSopenharmony_ci for (int i = 0; i < columnsIntSize; i++) { 149115cd2caSopenharmony_ci columns.push_back(columnsInt[i]); 150115cd2caSopenharmony_ci } 151115cd2caSopenharmony_ci int columnsStrSize = columnsStr.size(); 152115cd2caSopenharmony_ci for (int i = 0; i < columnsStrSize; i++) { 153115cd2caSopenharmony_ci columns.push_back(columnsStr[i]); 154115cd2caSopenharmony_ci } 155115cd2caSopenharmony_ci} 156115cd2caSopenharmony_ci 157115cd2caSopenharmony_ci/** 158115cd2caSopenharmony_ci * @brief get ValuesBucket 159115cd2caSopenharmony_ci * @params columnsStart column start index 160115cd2caSopenharmony_ci * @params columnsEnd column end index 161115cd2caSopenharmony_ci * @return ValuesBucket 162115cd2caSopenharmony_ci */ 163115cd2caSopenharmony_ciOHOS::DataShare::DataShareValuesBucket ContactGroupTest::GetAllColumnsValues( 164115cd2caSopenharmony_ci std::vector<std::string> &columnsInt, std::vector<std::string> &columnsStr) 165115cd2caSopenharmony_ci{ 166115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesBucket; 167115cd2caSopenharmony_ci int randomInt = 0; 168115cd2caSopenharmony_ci int columnsIntSize = columnsInt.size(); 169115cd2caSopenharmony_ci for (int i = 0; i < columnsIntSize; i++) { 170115cd2caSopenharmony_ci randomInt = ContactsRand(); 171115cd2caSopenharmony_ci HILOG_INFO("rand=%{public}d", randomInt); 172115cd2caSopenharmony_ci valuesBucket.Put(columnsInt[i], randomInt); 173115cd2caSopenharmony_ci } 174115cd2caSopenharmony_ci std::string randomStr = ""; 175115cd2caSopenharmony_ci int columnsStringSize = columnsStr.size(); 176115cd2caSopenharmony_ci for (int i = 0; i < columnsStringSize; i++) { 177115cd2caSopenharmony_ci randomStr = columnsStr[i] + std::to_string(ContactsRand()); 178115cd2caSopenharmony_ci valuesBucket.Put(columnsStr[i], randomStr); 179115cd2caSopenharmony_ci } 180115cd2caSopenharmony_ci 181115cd2caSopenharmony_ci return valuesBucket; 182115cd2caSopenharmony_ci} 183115cd2caSopenharmony_ci 184115cd2caSopenharmony_ciint64_t ContactGroupTest::GroupsInsertValues(OHOS::DataShare::DataShareValuesBucket &values) 185115cd2caSopenharmony_ci{ 186115cd2caSopenharmony_ci OHOS::Uri uriGroups(ContactsUri::GROUPS); 187115cd2caSopenharmony_ci int64_t code = contactsDataAbility.Insert(uriGroups, values); 188115cd2caSopenharmony_ci return code; 189115cd2caSopenharmony_ci} 190115cd2caSopenharmony_ci 191115cd2caSopenharmony_ci/* 192115cd2caSopenharmony_ci * @tc.number groups_Insert_test_100 193115cd2caSopenharmony_ci * @tc.name Add a single contact group 194115cd2caSopenharmony_ci * @tc.desc Add capabilities for contact groups 195115cd2caSopenharmony_ci * @tc.level Level1 196115cd2caSopenharmony_ci * @tc.size MediumTest 197115cd2caSopenharmony_ci * @tc.type Function 198115cd2caSopenharmony_ci */ 199115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Insert_test_100, testing::ext::TestSize.Level1) 200115cd2caSopenharmony_ci{ 201115cd2caSopenharmony_ci HILOG_INFO("--- groups_Insert_test_100 is staring! ---"); 202115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroup; 203115cd2caSopenharmony_ci int64_t groupId = GroupsInsert("personnel", valuesGroup); 204115cd2caSopenharmony_ci HILOG_INFO("groups_Insert_test_100: groupId = %{public}ld", groupId); 205115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 206115cd2caSopenharmony_ci 207115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 208115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupId)); 209115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 210115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates, valuesGroup, "groups_Insert_test_100"); 211115cd2caSopenharmony_ci ClearData(); 212115cd2caSopenharmony_ci} 213115cd2caSopenharmony_ci 214115cd2caSopenharmony_ci/* 215115cd2caSopenharmony_ci * @tc.number groups_Insert_test_200 216115cd2caSopenharmony_ci * @tc.name Adding multiple contact groups 217115cd2caSopenharmony_ci * @tc.desc Add capabilities for contact groups 218115cd2caSopenharmony_ci * @tc.level Level1 219115cd2caSopenharmony_ci * @tc.size MediumTest 220115cd2caSopenharmony_ci * @tc.type Function 221115cd2caSopenharmony_ci */ 222115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Insert_test_200, testing::ext::TestSize.Level1) 223115cd2caSopenharmony_ci{ 224115cd2caSopenharmony_ci HILOG_INFO("--- groups_Insert_test_200 is staring! ---"); 225115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroup; 226115cd2caSopenharmony_ci int64_t groupId = GroupsInsert("Test a set", valuesGroup); 227115cd2caSopenharmony_ci HILOG_INFO("groups_Insert_test_200: groupId = %{public}ld", groupId); 228115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 229115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 230115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupId)); 231115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 232115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates, valuesGroup, "groups_Insert_test_200"); 233115cd2caSopenharmony_ci 234115cd2caSopenharmony_ci valuesGroup.Clear(); 235115cd2caSopenharmony_ci groupId = GroupsInsert("Test group two", valuesGroup); 236115cd2caSopenharmony_ci HILOG_INFO("groups_Insert_test_200: groupId = %{public}ld", groupId); 237115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 238115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 239115cd2caSopenharmony_ci predicates2.EqualTo("id", std::to_string(groupId)); 240115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates2, valuesGroup, "groups_Insert_test_200"); 241115cd2caSopenharmony_ci 242115cd2caSopenharmony_ci valuesGroup.Clear(); 243115cd2caSopenharmony_ci groupId = GroupsInsert("Test three groups", valuesGroup); 244115cd2caSopenharmony_ci HILOG_INFO("groups_Insert_test_200: groupId = %{public}ld", groupId); 245115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 246115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates3; 247115cd2caSopenharmony_ci predicates3.EqualTo("id", std::to_string(groupId)); 248115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates3, valuesGroup, "groups_Insert_test_200"); 249115cd2caSopenharmony_ci ClearData(); 250115cd2caSopenharmony_ci} 251115cd2caSopenharmony_ci 252115cd2caSopenharmony_ci/* 253115cd2caSopenharmony_ci * @tc.number groups_Insert_test_300 254115cd2caSopenharmony_ci * @tc.name Add a full field data to the groups table and verify whether the insertion is successful 255115cd2caSopenharmony_ci * @tc.desc Added ability to groups 256115cd2caSopenharmony_ci * @tc.level Level1 257115cd2caSopenharmony_ci * @tc.size MediumTest 258115cd2caSopenharmony_ci * @tc.type Function 259115cd2caSopenharmony_ci */ 260115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Insert_test_300, testing::ext::TestSize.Level1) 261115cd2caSopenharmony_ci{ 262115cd2caSopenharmony_ci HILOG_INFO("-----groups_Insert_test_300 is starting!-----"); 263115cd2caSopenharmony_ci std::vector<std::string> columnsInt; 264115cd2caSopenharmony_ci std::vector<std::string> columnsStr; 265115cd2caSopenharmony_ci std::vector<std::string> columns; 266115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 267115cd2caSopenharmony_ci GetAllGroupsColumns(columnsInt, columnsStr); 268115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr); 269115cd2caSopenharmony_ci int rawId = GroupsInsertValues(valuesBucket); 270115cd2caSopenharmony_ci EXPECT_GT(rawId, 0); 271115cd2caSopenharmony_ci 272115cd2caSopenharmony_ci MergeColumns(columns, columnsInt, columnsStr); 273115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 274115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(rawId)); 275115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(groups, columns, predicates); 276115cd2caSopenharmony_ci // resultSet count 1 277115cd2caSopenharmony_ci int rowCount = -1; 278115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 279115cd2caSopenharmony_ci EXPECT_EQ(1, rowCount); 280115cd2caSopenharmony_ci CheckResultSet(valuesBucket, resultSet, "groups_Insert_test_300"); 281115cd2caSopenharmony_ci HILOG_INFO("-----groups_Insert_test_300 is end!-----"); 282115cd2caSopenharmony_ci ClearData(); 283115cd2caSopenharmony_ci} 284115cd2caSopenharmony_ci 285115cd2caSopenharmony_ci/* 286115cd2caSopenharmony_ci * @tc.number groups_Delete_test_400 287115cd2caSopenharmony_ci * @tc.name Single contact group deletion 288115cd2caSopenharmony_ci * @tc.desc Delete group ability based on group ID 289115cd2caSopenharmony_ci * @tc.level Level1 290115cd2caSopenharmony_ci * @tc.size MediumTest 291115cd2caSopenharmony_ci * @tc.type Function 292115cd2caSopenharmony_ci */ 293115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Delete_test_400, testing::ext::TestSize.Level1) 294115cd2caSopenharmony_ci{ 295115cd2caSopenharmony_ci HILOG_INFO("--- groups_Delete_test_400 is starting! ---"); 296115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroup; 297115cd2caSopenharmony_ci int64_t groupId = GroupsInsert("Personnel Group", valuesGroup); 298115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 299115cd2caSopenharmony_ci 300115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 301115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupId)); 302115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 303115cd2caSopenharmony_ci int deleteCode = ContactDelete(groups, predicates); 304115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 305115cd2caSopenharmony_ci std::vector<std::string> columns; 306115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(groups, columns, predicates); 307115cd2caSopenharmony_ci int rowCount = 0; 308115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 309115cd2caSopenharmony_ci EXPECT_EQ(0, rowCount); 310115cd2caSopenharmony_ci ClearData(); 311115cd2caSopenharmony_ci} 312115cd2caSopenharmony_ci 313115cd2caSopenharmony_ci/* 314115cd2caSopenharmony_ci * @tc.number groups_Delete_test_500 315115cd2caSopenharmony_ci * @tc.name Multiple contact groups deleted 316115cd2caSopenharmony_ci * @tc.desc Delete group ability based on group ID 317115cd2caSopenharmony_ci * @tc.level Level1 318115cd2caSopenharmony_ci * @tc.size MediumTest 319115cd2caSopenharmony_ci * @tc.type Function 320115cd2caSopenharmony_ci */ 321115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Delete_test_500, testing::ext::TestSize.Level1) 322115cd2caSopenharmony_ci{ 323115cd2caSopenharmony_ci HILOG_INFO("--- groups_Delete_test_500 is starting! ---"); 324115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroup; 325115cd2caSopenharmony_ci int64_t groupIdOne = GroupsInsert("Personnel Group", valuesGroup); 326115cd2caSopenharmony_ci EXPECT_GT(groupIdOne, 0); 327115cd2caSopenharmony_ci 328115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroupTwo; 329115cd2caSopenharmony_ci int64_t groupIdTwo = GroupsInsert("Sell one", valuesGroupTwo); 330115cd2caSopenharmony_ci EXPECT_GT(groupIdTwo, 0); 331115cd2caSopenharmony_ci 332115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroupThree; 333115cd2caSopenharmony_ci int64_t groupIdThree = GroupsInsert("Develop a group", valuesGroupThree); 334115cd2caSopenharmony_ci EXPECT_GT(groupIdThree, 0); 335115cd2caSopenharmony_ci 336115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 337115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupIdOne)); 338115cd2caSopenharmony_ci predicates.Or(); 339115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupIdTwo)); 340115cd2caSopenharmony_ci predicates.Or(); 341115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupIdThree)); 342115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 343115cd2caSopenharmony_ci int deleteCode = ContactDelete(groups, predicates); 344115cd2caSopenharmony_ci HILOG_INFO("groups_Delete_test_500: deleteCode = %{public}d", deleteCode); 345115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 346115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 347115cd2caSopenharmony_ci predicates2.EqualTo("id", std::to_string(groupIdOne)); 348115cd2caSopenharmony_ci predicates2.Or(); 349115cd2caSopenharmony_ci predicates2.EqualTo("id", std::to_string(groupIdTwo)); 350115cd2caSopenharmony_ci predicates2.Or(); 351115cd2caSopenharmony_ci predicates2.EqualTo("id", std::to_string(groupIdThree)); 352115cd2caSopenharmony_ci std::vector<std::string> columns; 353115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(groups, columns, predicates2); 354115cd2caSopenharmony_ci int rowCount = 0; 355115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 356115cd2caSopenharmony_ci EXPECT_EQ(0, rowCount); 357115cd2caSopenharmony_ci ClearData(); 358115cd2caSopenharmony_ci} 359115cd2caSopenharmony_ci 360115cd2caSopenharmony_ci/* 361115cd2caSopenharmony_ci * @tc.number groups_Delete_test_600 362115cd2caSopenharmony_ci * @tc.name Delete a full field data in the groups table and verify whether the deletion is successful 363115cd2caSopenharmony_ci * @tc.desc Groups deletion capability 364115cd2caSopenharmony_ci * @tc.level Level1 365115cd2caSopenharmony_ci * @tc.size MediumTest 366115cd2caSopenharmony_ci * @tc.type Function 367115cd2caSopenharmony_ci */ 368115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Delete_test_600, testing::ext::TestSize.Level1) 369115cd2caSopenharmony_ci{ 370115cd2caSopenharmony_ci HILOG_INFO("-----groups_Delete_test_600 is starting!-----"); 371115cd2caSopenharmony_ci // insert 372115cd2caSopenharmony_ci std::vector<std::string> columns; 373115cd2caSopenharmony_ci std::vector<std::string> columnsInt; 374115cd2caSopenharmony_ci std::vector<std::string> columnsStr; 375115cd2caSopenharmony_ci GetAllGroupsColumns(columnsInt, columnsStr); 376115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr); 377115cd2caSopenharmony_ci int groupId = GroupsInsertValues(valuesBucket); 378115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 379115cd2caSopenharmony_ci 380115cd2caSopenharmony_ci // test end delete data 381115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 382115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupId)); 383115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 384115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 385115cd2caSopenharmony_ci int deleteCode = ContactDelete(groups, predicates); 386115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 387115cd2caSopenharmony_ci 388115cd2caSopenharmony_ci MergeColumns(columns, columnsInt, columnsStr); 389115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetDeleteQuery = 390115cd2caSopenharmony_ci ContactQuery(groups, columns, predicates); 391115cd2caSopenharmony_ci int rowCount = -1; 392115cd2caSopenharmony_ci resultSetDeleteQuery->GetRowCount(rowCount); 393115cd2caSopenharmony_ci EXPECT_EQ(0, rowCount); 394115cd2caSopenharmony_ci ClearData(); 395115cd2caSopenharmony_ci} 396115cd2caSopenharmony_ci 397115cd2caSopenharmony_ci/* 398115cd2caSopenharmony_ci * @tc.number groups_Query_test_700 399115cd2caSopenharmony_ci * @tc.name Query all contact groups 400115cd2caSopenharmony_ci * @tc.desc Query all group capabilities 401115cd2caSopenharmony_ci * @tc.level Level1 402115cd2caSopenharmony_ci * @tc.size MediumTest 403115cd2caSopenharmony_ci * @tc.type Function 404115cd2caSopenharmony_ci */ 405115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Query_test_700, testing::ext::TestSize.Level1) 406115cd2caSopenharmony_ci{ 407115cd2caSopenharmony_ci HILOG_INFO("--- groups_Query_test_700 is starting! ---"); 408115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroupTwo; 409115cd2caSopenharmony_ci GroupsInsert("Sell one1", valuesGroupTwo); 410115cd2caSopenharmony_ci valuesGroupTwo.Clear(); 411115cd2caSopenharmony_ci GroupsInsert("Sell one2", valuesGroupTwo); 412115cd2caSopenharmony_ci valuesGroupTwo.Clear(); 413115cd2caSopenharmony_ci GroupsInsert("Sell one3", valuesGroupTwo); 414115cd2caSopenharmony_ci valuesGroupTwo.Clear(); 415115cd2caSopenharmony_ci GroupsInsert("Sell one4", valuesGroupTwo); 416115cd2caSopenharmony_ci valuesGroupTwo.Clear(); 417115cd2caSopenharmony_ci GroupsInsert("Sell one5", valuesGroupTwo); 418115cd2caSopenharmony_ci valuesGroupTwo.Clear(); 419115cd2caSopenharmony_ci std::vector<std::string> columns; 420115cd2caSopenharmony_ci columns.push_back("id"); 421115cd2caSopenharmony_ci columns.push_back("group_name"); 422115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 423115cd2caSopenharmony_ci predicates.GreaterThan("id", "0"); 424115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 425115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(groups, columns, predicates); 426115cd2caSopenharmony_ci int rowCount = 0; 427115cd2caSopenharmony_ci int currentCount = 5; 428115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 429115cd2caSopenharmony_ci EXPECT_EQ(currentCount, rowCount); 430115cd2caSopenharmony_ci ClearData(); 431115cd2caSopenharmony_ci} 432115cd2caSopenharmony_ci 433115cd2caSopenharmony_ci/* 434115cd2caSopenharmony_ci * @tc.number groups_Update_test_800 435115cd2caSopenharmony_ci * @tc.name Single contact group update 436115cd2caSopenharmony_ci * @tc.desc Contacts group update capability 437115cd2caSopenharmony_ci * @tc.level Level1 438115cd2caSopenharmony_ci * @tc.size MediumTest 439115cd2caSopenharmony_ci * @tc.type Function 440115cd2caSopenharmony_ci */ 441115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Update_test_800, testing::ext::TestSize.Level1) 442115cd2caSopenharmony_ci{ 443115cd2caSopenharmony_ci HILOG_INFO("--- groups_Update_test_800 is staring! ---"); 444115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroup; 445115cd2caSopenharmony_ci int64_t groupId = GroupsInsert("physical education", valuesGroup); 446115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 447115cd2caSopenharmony_ci 448115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket updateValues; 449115cd2caSopenharmony_ci updateValues.Put("group_name", std::string("Language")); 450115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 451115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupId)); 452115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 453115cd2caSopenharmony_ci int updateCode = ContactUpdate(groups, updateValues, predicates); 454115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 455115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates, updateValues, "groups_Update_test_800"); 456115cd2caSopenharmony_ci ClearData(); 457115cd2caSopenharmony_ci} 458115cd2caSopenharmony_ci 459115cd2caSopenharmony_ci/* 460115cd2caSopenharmony_ci * @tc.number groups_Update_test_900 461115cd2caSopenharmony_ci * @tc.name Multiple contact group updates 462115cd2caSopenharmony_ci * @tc.desc Contacts group update capability 463115cd2caSopenharmony_ci * @tc.level Level1 464115cd2caSopenharmony_ci * @tc.size MediumTest 465115cd2caSopenharmony_ci * @tc.type Function 466115cd2caSopenharmony_ci */ 467115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Update_test_900, testing::ext::TestSize.Level1) 468115cd2caSopenharmony_ci{ 469115cd2caSopenharmony_ci HILOG_INFO("--- groups_Update_test_900 is staring! ---"); 470115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroupOne; 471115cd2caSopenharmony_ci int64_t groupIdOne = GroupsInsert("Develop a group", valuesGroupOne); 472115cd2caSopenharmony_ci EXPECT_GT(groupIdOne, 0); 473115cd2caSopenharmony_ci 474115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroupTwo; 475115cd2caSopenharmony_ci int64_t groupIdTwo = GroupsInsert("Development Group 2", valuesGroupTwo); 476115cd2caSopenharmony_ci EXPECT_GT(groupIdTwo, 0); 477115cd2caSopenharmony_ci 478115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesGroupThree; 479115cd2caSopenharmony_ci int64_t groupIdThree = GroupsInsert("Development three groups", valuesGroupThree); 480115cd2caSopenharmony_ci EXPECT_GT(groupIdThree, 0); 481115cd2caSopenharmony_ci 482115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket updateValues; 483115cd2caSopenharmony_ci updateValues.Put("group_name", std::string("Develop a group")); 484115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 485115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupIdOne)); 486115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 487115cd2caSopenharmony_ci int updateCode = ContactUpdate(groups, updateValues, predicates); 488115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 489115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates, updateValues, "groups_Update_test_900"); 490115cd2caSopenharmony_ci 491115cd2caSopenharmony_ci updateValues.Clear(); 492115cd2caSopenharmony_ci updateValues.Put("group_name", std::string("Development Second Group")); 493115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 494115cd2caSopenharmony_ci predicates2.EqualTo("id", std::to_string(groupIdTwo)); 495115cd2caSopenharmony_ci updateCode = ContactUpdate(groups, updateValues, predicates2); 496115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 497115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates2, updateValues, "groups_Update_test_900"); 498115cd2caSopenharmony_ci 499115cd2caSopenharmony_ci updateValues.Clear(); 500115cd2caSopenharmony_ci updateValues.Put("group_name", std::string("Develop three groups")); 501115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates3; 502115cd2caSopenharmony_ci predicates3.EqualTo("id", std::to_string(groupIdThree)); 503115cd2caSopenharmony_ci updateCode = ContactUpdate(groups, updateValues, predicates3); 504115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 505115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates3, updateValues, "groups_Update_test_900"); 506115cd2caSopenharmony_ci ClearData(); 507115cd2caSopenharmony_ci} 508115cd2caSopenharmony_ci 509115cd2caSopenharmony_ci/* 510115cd2caSopenharmony_ci * @tc.number groups_Update_test_1000 511115cd2caSopenharmony_ci * @tc.name Update a full field data of the groups table and verify whether the update is successful 512115cd2caSopenharmony_ci * @tc.desc Support all groups update capability 513115cd2caSopenharmony_ci * @tc.level Level1 514115cd2caSopenharmony_ci * @tc.size MediumTest 515115cd2caSopenharmony_ci * @tc.type Function 516115cd2caSopenharmony_ci */ 517115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, groups_Update_test_1000, testing::ext::TestSize.Level1) 518115cd2caSopenharmony_ci{ 519115cd2caSopenharmony_ci HILOG_INFO("-----groups_Update_test_1000 is starting!-----"); 520115cd2caSopenharmony_ci std::vector<std::string> columns; 521115cd2caSopenharmony_ci std::vector<std::string> columnsInt; 522115cd2caSopenharmony_ci std::vector<std::string> columnsStr; 523115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 524115cd2caSopenharmony_ci GetAllGroupsColumns(columnsInt, columnsStr); 525115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesBucket = GetAllColumnsValues(columnsInt, columnsStr); 526115cd2caSopenharmony_ci int groupId = GroupsInsertValues(valuesBucket); 527115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 528115cd2caSopenharmony_ci MergeColumns(columns, columnsInt, columnsStr); 529115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 530115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupId)); 531115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetOne = ContactQuery(groups, columns, predicates); 532115cd2caSopenharmony_ci CheckResultSet(valuesBucket, resultSetOne, "groups_Update_test_1000"); 533115cd2caSopenharmony_ci 534115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket upDateValuesBucket = GetAllColumnsValues(columnsInt, columnsStr); 535115cd2caSopenharmony_ci int upDateCode = ContactUpdate(groups, upDateValuesBucket, predicates); 536115cd2caSopenharmony_ci EXPECT_EQ(upDateCode, 0); 537115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(groups, columns, predicates); 538115cd2caSopenharmony_ci // resultSet count 1 539115cd2caSopenharmony_ci int rowCount = -1; 540115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 541115cd2caSopenharmony_ci EXPECT_EQ(1, rowCount); 542115cd2caSopenharmony_ci CheckResultSet(upDateValuesBucket, resultSet, "groups_Update_test_1000"); 543115cd2caSopenharmony_ci ClearData(); 544115cd2caSopenharmony_ci} 545115cd2caSopenharmony_ci 546115cd2caSopenharmony_ci/* 547115cd2caSopenharmony_ci * @tc.number abnormal_groups_Insert_test_1100 548115cd2caSopenharmony_ci * @tc.name An incorrect field or table name was passed in when inserting a group 549115cd2caSopenharmony_ci * @tc.desc Exception use case 550115cd2caSopenharmony_ci * @tc.level Level1 551115cd2caSopenharmony_ci * @tc.size MediumTest 552115cd2caSopenharmony_ci * @tc.type Function 553115cd2caSopenharmony_ci */ 554115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, abnormal_groups_Insert_test_1100, testing::ext::TestSize.Level1) 555115cd2caSopenharmony_ci{ 556115cd2caSopenharmony_ci OHOS::Uri uriGroups(ContactsUri::GROUPS); 557115cd2caSopenharmony_ci OHOS::Uri errorUri(ContactsUri::GROUPS_ERROR); 558115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket groupValues; 559115cd2caSopenharmony_ci groupValues.Put("group_names", "Board of Directors"); 560115cd2caSopenharmony_ci int64_t groupId = contactsDataAbility.Insert(uriGroups, groupValues); 561115cd2caSopenharmony_ci EXPECT_EQ(groupId, -1); 562115cd2caSopenharmony_ci 563115cd2caSopenharmony_ci groupValues.Clear(); 564115cd2caSopenharmony_ci groupValues.Put("group_name", "Board of Directors"); 565115cd2caSopenharmony_ci groupId = contactsDataAbility.Insert(errorUri, groupValues); 566115cd2caSopenharmony_ci EXPECT_EQ(groupId, -1); 567115cd2caSopenharmony_ci std::vector<std::string> columns; 568115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 569115cd2caSopenharmony_ci predicates.EqualTo("group_name", "Board of Directors"); 570115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 571115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(groups, columns, predicates); 572115cd2caSopenharmony_ci int rowCount = 0; 573115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 574115cd2caSopenharmony_ci EXPECT_EQ(0, rowCount); 575115cd2caSopenharmony_ci ClearData(); 576115cd2caSopenharmony_ci} 577115cd2caSopenharmony_ci 578115cd2caSopenharmony_ci/* 579115cd2caSopenharmony_ci * @tc.number abnormal_groups_Delete_test_1200 580115cd2caSopenharmony_ci * @tc.name When deleting a group, pass in non-existent fields, field values, and table names 581115cd2caSopenharmony_ci * @tc.desc Exception use case 582115cd2caSopenharmony_ci * @tc.level Level1 583115cd2caSopenharmony_ci * @tc.size MediumTest 584115cd2caSopenharmony_ci * @tc.type Function 585115cd2caSopenharmony_ci */ 586115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, abnormal_groups_Delete_test_1200, testing::ext::TestSize.Level1) 587115cd2caSopenharmony_ci{ 588115cd2caSopenharmony_ci OHOS::Uri errorUri(ContactsUri::GROUPS_ERROR); 589115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket values; 590115cd2caSopenharmony_ci int64_t groupId = GroupsInsert("Board of Directors 2", values); 591115cd2caSopenharmony_ci HILOG_INFO("abnormal_groups_Delete_test_1200: groupId = %{public}ld", groupId); 592115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 593115cd2caSopenharmony_ci 594115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 595115cd2caSopenharmony_ci predicates.EqualTo("ids", std::to_string(groupId)); 596115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 597115cd2caSopenharmony_ci int deleteCode = ContactDelete(groups, predicates); 598115cd2caSopenharmony_ci HILOG_INFO("abnormal_groups_Delete_test_1200: deleteCode = %{public}d", deleteCode); 599115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, -1); 600115cd2caSopenharmony_ci std::vector<std::string> columns; 601115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 602115cd2caSopenharmony_ci predicates2.EqualTo("id", std::to_string(groupId)); 603115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(groups, columns, predicates2); 604115cd2caSopenharmony_ci int rowCount = 0; 605115cd2caSopenharmony_ci resultSet->GetRowCount(rowCount); 606115cd2caSopenharmony_ci EXPECT_EQ(1, rowCount); 607115cd2caSopenharmony_ci 608115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates3; 609115cd2caSopenharmony_ci predicates3.EqualTo("id", std::to_string(groupId)); 610115cd2caSopenharmony_ci deleteCode = contactsDataAbility.Delete(errorUri, predicates3); 611115cd2caSopenharmony_ci HILOG_INFO("abnormal_groups_Delete_test_1200: deleteCode = %{public}d", deleteCode); 612115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, -1); 613115cd2caSopenharmony_ci 614115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetTwo = ContactQuery(groups, columns, predicates3); 615115cd2caSopenharmony_ci int rowCountTwo = 0; 616115cd2caSopenharmony_ci resultSetTwo->GetRowCount(rowCountTwo); 617115cd2caSopenharmony_ci EXPECT_EQ(1, rowCountTwo); 618115cd2caSopenharmony_ci 619115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates4; 620115cd2caSopenharmony_ci predicates4.EqualTo("id", "10000000"); 621115cd2caSopenharmony_ci deleteCode = ContactDelete(groups, predicates4); 622115cd2caSopenharmony_ci EXPECT_EQ(deleteCode, 0); 623115cd2caSopenharmony_ci ClearData(); 624115cd2caSopenharmony_ci} 625115cd2caSopenharmony_ci 626115cd2caSopenharmony_ci/* 627115cd2caSopenharmony_ci * @tc.number abnormal_groups_Query_test_1300 628115cd2caSopenharmony_ci * @tc.name When querying a group, pass in non-existent fields, field values, and table names 629115cd2caSopenharmony_ci * @tc.desc Exception use case 630115cd2caSopenharmony_ci * @tc.level Level1 631115cd2caSopenharmony_ci * @tc.size MediumTest 632115cd2caSopenharmony_ci * @tc.type Function 633115cd2caSopenharmony_ci */ 634115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, abnormal_groups_Query_test_1300, testing::ext::TestSize.Level1) 635115cd2caSopenharmony_ci{ 636115cd2caSopenharmony_ci std::string tag("abnormal_groups_Query_test_1300"); 637115cd2caSopenharmony_ci OHOS::Uri errorUri(ContactsUri::GROUPS_ERROR); 638115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 639115cd2caSopenharmony_ci std::vector<std::string> columns; 640115cd2caSopenharmony_ci columns.push_back("id"); 641115cd2caSopenharmony_ci columns.push_back("group_name"); 642115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 643115cd2caSopenharmony_ci predicates.GreaterThan("ids", "0"); 644115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetOne = ContactQuery(groups, columns, predicates); 645115cd2caSopenharmony_ci int rowCountOne = 0; 646115cd2caSopenharmony_ci resultSetOne->GetRowCount(rowCountOne); 647115cd2caSopenharmony_ci EXPECT_EQ(-1, rowCountOne); 648115cd2caSopenharmony_ci 649115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 650115cd2caSopenharmony_ci predicates2.EqualTo("id", "10000000"); 651115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetTwo = ContactQuery(groups, columns, predicates2); 652115cd2caSopenharmony_ci int rowCountTwo = 0; 653115cd2caSopenharmony_ci resultSetTwo->GetRowCount(rowCountTwo); 654115cd2caSopenharmony_ci EXPECT_EQ(0, rowCountTwo); 655115cd2caSopenharmony_ci 656115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates3; 657115cd2caSopenharmony_ci predicates3.GreaterThan("id", "0"); 658115cd2caSopenharmony_ci std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetThree = 659115cd2caSopenharmony_ci contactsDataAbility.Query(errorUri, predicates3, columns); 660115cd2caSopenharmony_ci EXPECT_EQ(resultSetThree, nullptr); 661115cd2caSopenharmony_ci ClearData(); 662115cd2caSopenharmony_ci} 663115cd2caSopenharmony_ci 664115cd2caSopenharmony_ci/* 665115cd2caSopenharmony_ci * @tc.number abnormal_groups_Update_test_1400 666115cd2caSopenharmony_ci * @tc.name When modifying a group, pass in non-existent fields, field values, and table names 667115cd2caSopenharmony_ci * @tc.desc Exception use case 668115cd2caSopenharmony_ci * @tc.level Level1 669115cd2caSopenharmony_ci * @tc.size MediumTest 670115cd2caSopenharmony_ci * @tc.type Function 671115cd2caSopenharmony_ci */ 672115cd2caSopenharmony_ciHWTEST_F(ContactGroupTest, abnormal_groups_Update_test_1400, testing::ext::TestSize.Level1) 673115cd2caSopenharmony_ci{ 674115cd2caSopenharmony_ci OHOS::Uri errorUri(ContactsUri::GROUPS_ERROR); 675115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket valuesInsert; 676115cd2caSopenharmony_ci int64_t groupId = GroupsInsert("Board of Directors", valuesInsert); 677115cd2caSopenharmony_ci HILOG_INFO("abnormal_groups_Update_test_1400: groupId = %{public}ld", groupId); 678115cd2caSopenharmony_ci EXPECT_GT(groupId, 0); 679115cd2caSopenharmony_ci 680115cd2caSopenharmony_ci OHOS::DataShare::DataShareValuesBucket updateValues; 681115cd2caSopenharmony_ci updateValues.Put("group_names", "Develop a group"); 682115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates; 683115cd2caSopenharmony_ci predicates.EqualTo("id", std::to_string(groupId)); 684115cd2caSopenharmony_ci std::string groups = ContactTabName::GROUPS; 685115cd2caSopenharmony_ci int updateCode = ContactUpdate(groups, updateValues, predicates); 686115cd2caSopenharmony_ci HILOG_INFO("abnormal_groups_Update_test_1400: updateCode = %{public}d", updateCode); 687115cd2caSopenharmony_ci EXPECT_EQ(updateCode, -1); 688115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates, valuesInsert, "abnormal_groups_Update_test_1400"); 689115cd2caSopenharmony_ci 690115cd2caSopenharmony_ci updateValues.Clear(); 691115cd2caSopenharmony_ci updateValues.Put("group_name", "Develop a group"); 692115cd2caSopenharmony_ci updateCode = contactsDataAbility.Update(errorUri, predicates, updateValues); 693115cd2caSopenharmony_ci HILOG_INFO("abnormal_groups_Update_test_1400: updateCode = %{public}d", updateCode); 694115cd2caSopenharmony_ci EXPECT_EQ(updateCode, -1); 695115cd2caSopenharmony_ci QueryAndExpectResult(groups, predicates, valuesInsert, "abnormal_groups_Update_test_1400"); 696115cd2caSopenharmony_ci 697115cd2caSopenharmony_ci OHOS::DataShare::DataSharePredicates predicates2; 698115cd2caSopenharmony_ci predicates2.EqualTo("id", "10000000"); 699115cd2caSopenharmony_ci updateCode = ContactUpdate(groups, updateValues, predicates2); 700115cd2caSopenharmony_ci EXPECT_EQ(updateCode, 0); 701115cd2caSopenharmony_ci ClearData(); 702115cd2caSopenharmony_ci} 703115cd2caSopenharmony_ci} // namespace Test 704115cd2caSopenharmony_ci} // namespace Contacts