1/* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import dataShare from '@ohos.data.dataShare'; 17import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it} from 'deccjsunit/index' 18 19const URI_CONTACTS = "datashare:///com.ohos.contactsdataability"; 20const groupUri = "datashare:///com.ohos.contactsdataability/contacts/groups"; 21import common from './common.js'; 22 23describe('GroupsTest', function() { 24 console.info('logMessage GroupsTest start! '); 25 26 var array_two = 2; 27 28 async function groupsQuery(map, tag) 29 { 30 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 31 console.info(tag + ': groupsQuery start ! dataShareHelper = ' + dataShareHelper); 32 var resultColumns = []; 33 let condition = new dataShare.DataSharePredicates(); 34 condition.equalTo("id", map.get("id")); 35 try { 36 var resultSet = await dataShareHelper.query(groupUri, resultColumns, condition); 37 if (resultSet.rowCount > 0) { 38 if (resultSet.goToFirstRow()) { 39 do { 40 for (var [key, value] of map) { 41 let dbresult = resultSet.getString(resultSet.getColumnIndex(key)); 42 console.info(tag + ': logMessage groupsQuery key =' + key + 'dbresult :' + dbresult + 43 ' value : ' + value); 44 expect(value == dbresult).assertTrue(); 45 } 46 } while (resultSet.goToNextRow()); 47 } 48 } 49 resultSet.close(); 50 } catch (error) { 51 console.info(tag + ': logMessage groupsQuery: error = ' + error); 52 } 53 } 54 55 async function queryIdForDelete(map, tag) 56 { 57 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 58 console.info(tag + ': queryIdForDelete start ! dataShareHelper = ' + dataShareHelper); 59 let resultColumns = common.getCallLogResultColumns(); 60 let condition = new dataShare.DataSharePredicates(); 61 condition.equalTo("id", map.get("id")); 62 try { 63 var resultSet = await dataShareHelper.query(groupUri, resultColumns, condition); 64 expect(resultSet.goToFirstRow() == false).assertTrue(); 65 console.info(tag + " :logMessage queryIdForDelete: goToFirstRow " + resultSet.goToFirstRow()); 66 resultSet.close(); 67 } catch (error) { 68 console.info(tag + " :logMessage queryIdForDelete: error = " + error); 69 } 70 } 71 72 async function deleteAll(uri, tag) 73 { 74 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 75 let condition = new dataShare.DataSharePredicates(); 76 condition.greaterThan("id", "0"); 77 var deleteCode = await dataShareHelper.delete(uri, condition); 78 console.info(tag + ': deleteAll deleteCode = ' + deleteCode); 79 expect(deleteCode == 0).assertTrue(); 80 } 81 82 /** 83 * @tc.number group_insert_test_100 84 * @tc.name Insert group 85 * @tc.desc Function test 86 */ 87 it("group_insert_test_100", 0, async function(done) { 88 console.info("---------logMessage group_insert_test_100 is starting!----------"); 89 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 90 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 91 try { 92 var groupId = await dataShareHelper.insert(groupUri, common.getProfileGroup()); 93 console.info("logMessage group_insert_test_100: groupId = " + groupId); 94 expect(groupId > 0).assertTrue(); 95 var map = common.getProfileGroupMap(); 96 map.set("id", groupId.toString()); 97 await groupsQuery(map, "group_insert_test_100"); 98 await deleteAll(groupUri, "group_insert_test_100"); 99 done(); 100 } catch (error) { 101 console.info("logMessage group_insert_test_100: group insert error = " + error); 102 done(); 103 } 104 }); 105 106 /** 107 * @tc.number group_update_test_500 108 * @tc.name Update group 109 * @tc.desc Function test 110 */ 111 it("group_update_test_500", 0, async function(done) { 112 console.info("---------logMessage group_update_test_500 is starting!----------"); 113 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 114 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 115 try { 116 var groupId = await dataShareHelper.insert(groupUri, common.getProfileGroup()); 117 console.info("logMessage group_update_test_500: groupId = " + groupId); 118 expect(groupId > 0).assertTrue(); 119 await GroupUpdate(); 120 await deleteAll(groupUri, "group_update_test_500"); 121 done(); 122 } catch (error) { 123 console.info("logMessage group_update_test_500: group insert error = " + error); 124 done(); 125 } 126 127 async function GroupUpdate() 128 { 129 let condition = new dataShare.DataSharePredicates(); 130 condition.equalTo("id", groupId.toString()); 131 try { 132 var updateCode = await dataShareHelper.update(groupUri, common.getProfileUpdateGroup(), condition); 133 console.info("logMessage group_update_test_500: updateCode = " + updateCode); 134 expect(updateCode == 0).assertTrue(); 135 var map = common.getProfileUpdateGroupMap(); 136 map.set("id", groupId.toStirng()); 137 await groupsQuery(map, "group_update_test_500"); 138 } catch (error) { 139 console.info("logMessage group_update_test_500: update error = " + error); 140 done(); 141 } 142 } 143 }); 144 145 /** 146 * @tc.number group_delete_test_200 147 * @tc.name Delete group 148 * @tc.desc Function test 149 */ 150 it("group_delete_test_200", 0, async function(done) { 151 console.info("---------logMessage group_delete_test_200 is starting!----------"); 152 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 153 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 154 try { 155 var groupId = await dataShareHelper.insert(groupUri, common.getProfileGroup()); 156 console.info("logMessage group_delete_test_200: groupId = " + groupId); 157 expect(groupId > 0).assertTrue(); 158 await GroupDelete(); 159 done(); 160 } catch (error) { 161 console.info("logMessage group_delete_test_200: group insert error = " + error); 162 done(); 163 } 164 async function GroupDelete() 165 { 166 let condition = new dataShare.DataSharePredicates(); 167 condition.equalTo("id", groupId.toString()); 168 try { 169 var deleteCode = await dataShareHelper.delete(groupUri, condition); 170 console.info("logMessage group_delete_test_200 : deleteCode = " + deleteCode); 171 expect(deleteCode == 0).assertTrue(); 172 var map = new Map(); 173 map.set("id", groupId.toString()); 174 await queryIdForDelete(map, "group_delete_test_200"); 175 } catch (error) { 176 console.info("logMessage group_delete_test_200 : delete error = " + error); 177 done(); 178 } 179 } 180 }); 181 182 /** 183 * @tc.number group_query_test_300 184 * @tc.name Query a group 185 * @tc.desc Function test 186 */ 187 it("group_query_test_300", 0, async function(done) { 188 console.info("------------logMessage group_query_test_300 is starting!-----------"); 189 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 190 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 191 try { 192 var groupId = await dataShareHelper.insert(groupUri, common.getProfileGroup()); 193 console.info("logMessage group_query_test_300: groupId = " + groupId); 194 expect(groupId > 0).assertTrue(); 195 var map = common.getProfileGroupMap(); 196 map.set("id", groupId.toString()); 197 await groupsQuery(map, "logMessage group_query_test_300"); 198 await deleteAll(groupUri, "group_query_test_300"); 199 done(); 200 } catch (error) { 201 console.info("logMessage group_query_test_300: group insert error = " + error); 202 done(); 203 } 204 }); 205 206 /** 207 * @tc.number group_query_test_400 208 * @tc.name Query all groups 209 * @tc.desc Function test 210 */ 211 it("group_query_test_400", 0, async function(done) { 212 console.info("------------logMessage group_query_test_400 is starting!-----------"); 213 console.info("---------logMessage getDbHelper start!----------"); 214 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 215 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 216 console.info('logMessage uri = ' + URI_CONTACTS); 217 var groupUri = "datashare:///com.ohos.contactsdataability/contacts/groups"; 218 219 var insertValues = {"group_name" : "ManagerSecondGroup"}; 220 try { 221 var groupId = await dataShareHelper.insert(groupUri, insertValues); 222 console.info("logMessage group_query_test_400: groupId = " + groupId); 223 expect(groupId > 0).assertTrue(); 224 await GroupQuery(); 225 await deleteAll(groupUri, "group_query_test_400"); 226 done(); 227 } catch (error) { 228 console.info("logMessage group_query_test_400: group insert error = " + error); 229 done(); 230 } 231 232 async function GroupQuery() 233 { 234 var resultColumns = [ "id", "group_name" ]; 235 let condition = new dataShare.DataSharePredicates(); 236 condition.greaterThan("id", "0"); 237 try { 238 var resultSet = await dataShareHelper.query(groupUri, resultColumns, condition); 239 console.info("logMessage group_query_test_400: resultSet.rowCount = " + resultSet.rowCount); 240 expect(resultSet.rowCount == 1).assertTrue(); 241 resultSet.close(); 242 } catch (error) { 243 console.info("group_query_test_400 resultSet query error = " + error); 244 done(); 245 } 246 } 247 }); 248 249 /** 250 * @tc.number abnormal_group_insert_test_600 251 * @tc.name abnormal insert 252 * @tc.desc Function test 253 */ 254 it("abnormal_group_insert_test_600", 0, async function(done) { 255 console.info("---------logMessage abnormal_group_insert_test_600 is starting!----------"); 256 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 257 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 258 const errorUri = "datashare:///com.ohos.contactsdataability/contacts/groupssss"; 259 try { 260 var groupId = await dataShareHelper.insert(errorUri, common.getProfileGroup()); 261 console.info("logMessage abnormal_group_insert_test_600: groupId = " + groupId); 262 expect(groupId == -1).assertTrue(); 263 done(); 264 } catch (error) { 265 console.info("logMessage abnormal_group_insert_test_600: group insert error = " + error); 266 done(); 267 } 268 }); 269 270 /** 271 * @tc.number abnormal_group_update_test_700 272 * @tc.name abnormal update 273 * @tc.desc Function test 274 */ 275 it("abnormal_group_update_test_700", 0, async function(done) { 276 console.info("---------logMessage abnormal_group_update_test_700 is starting!----------"); 277 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 278 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 279 try { 280 var groupId = await dataShareHelper.insert(groupUri, common.getProfileGroup()); 281 console.info("logMessage abnormal_group_update_test_700: groupId = " + groupId); 282 expect(groupId > 0).assertTrue(); 283 await GroupUpdate(); 284 await deleteAll(groupUri, "abnormal_group_update_test_700"); 285 done(); 286 } catch (error) { 287 console.info("logMessage abnormal_group_update_test_700: group insert error = " + error); 288 done(); 289 } 290 291 async function GroupUpdate() 292 { 293 let condition = new dataShare.DataSharePredicates(); 294 condition.equalTo("id", groupId.toString()); 295 var updateValue = { "group_notesss" : "6666" } 296 try { 297 var updateCode = await dataShareHelper.update(groupUri, updateValue, condition); 298 console.info("logMessage abnormal_group_update_test_700: updateCode = " + updateCode); 299 expect(updateCode == -1).assertTrue(); 300 var map = common.getProfileUpdateGroupMap(); 301 map.set("id", groupId.toStirng()); 302 await groupsQuery(map, "abnormal_group_update_test_700"); 303 } catch (error) { 304 console.info("logMessage abnormal_group_update_test_700: update error = " + error); 305 done(); 306 } 307 } 308 }); 309 310 /** 311 * @tc.number abnormal_group_delete_test_800 312 * @tc.name abnormal delete 313 * @tc.desc Function test 314 */ 315 it("abnormal_group_delete_test_800", 0, async function(done) { 316 console.info("---------logMessage abnormal_group_delete_test_800 is starting!----------"); 317 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 318 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 319 try { 320 var groupId = await dataShareHelper.insert(groupUri, common.getProfileGroup()); 321 console.info("logMessage abnormal_group_delete_test_800: groupId = " + groupId); 322 expect(groupId > 0).assertTrue(); 323 await GroupDelete(); 324 await deleteAll(groupUri, "abnormal_group_delete_test_800"); 325 done(); 326 } catch (error) { 327 console.info("logMessage abnormal_group_delete_test_800: group insert error = " + error); 328 done(); 329 } 330 async function GroupDelete() 331 { 332 let condition = new dataShare.DataSharePredicates(); 333 condition.equalTo("idss", groupId.toString()); 334 try { 335 var deleteCode = await dataShareHelper.delete(groupUri, condition); 336 console.info("logMessage abnormal_group_delete_test_800 : deleteCode = " + deleteCode); 337 expect(deleteCode == -1).assertTrue(); 338 var map = common.getProfileUpdateGroupMap(); 339 map.set("id", groupId.toStirng()); 340 await groupsQuery(map, "abnormal_group_delete_test_800"); 341 } catch (error) { 342 console.info("logMessage abnormal_group_delete_test_800 : delete error = " + error); 343 done(); 344 } 345 } 346 }); 347 348 /** 349 * @tc.number abnormal_group_query_test_900 350 * @tc.name abnormal query 351 * @tc.desc Function test 352 */ 353 it("abnormal_group_query_test_900", 0, async function(done) { 354 console.info("------------logMessage abnormal_group_query_test_900 is starting!-----------"); 355 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 356 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 357 358 var insertValues = {"group_name" : "PersonnelDepartment"}; 359 try { 360 var groupId = await dataShareHelper.insert(groupUri, insertValues); 361 console.info("logMessage abnormal_group_query_test_900: groupId = " + groupId); 362 expect(groupId > 0).assertTrue(); 363 await GroupQuery(dataShareHelper); 364 await deleteAll(groupUri, "abnormal_group_query_test_900"); 365 done(); 366 } catch (error) { 367 console.info("logMessage abnormal_group_query_test_900: group insert error = " + error); 368 done(); 369 } 370 371 async function GroupQuery(dataShareHelper) 372 { 373 var resultColumns = [ "id", "group_namesss" ]; 374 let condition = new dataShare.DataSharePredicates(); 375 condition.equalTo("id", groupId.toString()); 376 try { 377 var resultSet = await dataShareHelper.query(groupUri, resultColumns, condition); 378 console.info('abnormal_group_query_test_900 resultSet.goToFirstRow() = ' + resultSet.goToFirstRow()); 379 expect(resultSet.goToFirstRow() == false).assertTrue(); 380 resultSet.close(); 381 } catch (error) { 382 console.info('abnormal_group_query_test_900 query error ' + error); 383 done(); 384 } 385 } 386 }); 387 388 /** 389 * @tc.number group_insert_test_1000 390 * @tc.name Adding multiple groups 391 * @tc.desc Function test 392 */ 393 it("group_insert_test_1000", 0, async function(done) { 394 console.info("------------logMessage group_insert_test_1000 is starting!-----------"); 395 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 396 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 397 398 var insertValuesOne = {"group_name" : "test1000"}; 399 var insertValuesTwo = {"group_name" : "test1000"}; 400 var insertValuesThree = {"group_name" : "test1000"}; 401 var array = [] 402 array[0] = insertValuesOne; 403 array[1] = insertValuesTwo; 404 array[array_two] = insertValuesThree; 405 try { 406 var code = await dataShareHelper.batchInsert(groupUri, array); 407 console.info("logMessage group_insert_test_1000: batchInsert code = " + code); 408 expect(code == 0).assertTrue(); 409 await GroupQuery(dataShareHelper); 410 await deleteAll(groupUri, "group_insert_test_1000"); 411 done(); 412 } catch (error) { 413 console.info("logMessage group_insert_test_1000: group insert error = " + error); 414 done(); 415 } 416 417 async function GroupQuery(dataShareHelper) 418 { 419 var groupSize = 3; 420 var resultColumns = [ "id", "group_name" ]; 421 let condition = new dataShare.DataSharePredicates(); 422 condition.equalTo("group_name", "test1000"); 423 try { 424 var resultSet = await dataShareHelper.query(groupUri, resultColumns, condition); 425 console.info('group_insert_test_1000 resultSet.rowCount = ' + resultSet.rowCount); 426 expect(resultSet.rowCount == groupSize).assertTrue(); 427 resultSet.close(); 428 } catch (error) { 429 console.info('group_insert_test_1000 query error ' + error); 430 done(); 431 } 432 } 433 }); 434 435 /** 436 * @tc.number group_delete_test_1100 437 * @tc.name delete multiple groups 438 * @tc.desc Function test 439 */ 440 it("group_delete_test_1100", 0, async function(done) { 441 console.info("------------logMessage group_delete_test_1100 is starting!-----------"); 442 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 443 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 444 445 var insertValuesOne = {"group_name" : "test1100"}; 446 var insertValuesTwo = {"group_name" : "test1100"}; 447 var insertValuesThree = {"group_name" : "test1100"}; 448 var array = [] 449 array[0] = insertValuesOne; 450 array[1] = insertValuesTwo; 451 array[array_two] = insertValuesThree; 452 try { 453 var code = await dataShareHelper.batchInsert(groupUri, array); 454 console.info("logMessage group_delete_test_1100: batchInsert code = " + code); 455 expect(code == 0).assertTrue(); 456 await deleteAll(groupUri, "group_delete_test_1100"); 457 await GroupQuery(dataShareHelper); 458 done(); 459 } catch (error) { 460 console.info("logMessage group_delete_test_1100: group insert error = " + error); 461 done(); 462 } 463 464 async function GroupQuery(dataShareHelper) 465 { 466 var groupSize = 0; 467 var resultColumns = [ "id", "group_name" ]; 468 let condition = new dataShare.DataSharePredicates(); 469 condition.equalTo("group_name", "test1100"); 470 try { 471 var resultSet = await dataShareHelper.query(groupUri, resultColumns, condition); 472 console.info('group_delete_test_1100 resultSet.rowCount = ' + resultSet.rowCount); 473 expect(resultSet.rowCount == groupSize).assertTrue(); 474 resultSet.close(); 475 } catch (error) { 476 console.info('group_delete_test_1100 query error ' + error); 477 done(); 478 } 479 } 480 }); 481 482 /** 483 * @tc.number group_update_test_1200 484 * @tc.name update multiple groups 485 * @tc.desc Function test 486 */ 487 it("group_update_test_1200", 0, async function(done) { 488 console.info("------------logMessage group_update_test_1200 is starting!-----------"); 489 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 490 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 491 492 var insertValuesOne = {"group_name" : "test1200"}; 493 var insertValuesTwo = {"group_name" : "test1200"}; 494 var insertValuesThree = {"group_name" : "test1200"}; 495 var array = [] 496 array[0] = insertValuesOne; 497 array[1] = insertValuesTwo; 498 array[array_two] = insertValuesThree; 499 try { 500 var code = await dataShareHelper.batchInsert(groupUri, array); 501 console.info("logMessage group_update_test_1200: batchInsert code = " + code); 502 expect(code == 0).assertTrue(); 503 await GroupUpdateThree(dataShareHelper); 504 await GroupQuery(dataShareHelper); 505 await deleteAll(groupUri, "group_update_test_1200"); 506 done(); 507 } catch (error) { 508 console.info("logMessage group_update_test_1200: group insert error = " + error); 509 done(); 510 } 511 512 async function GroupQuery(dataShareHelper) 513 { 514 var groupSize = 3; 515 var resultColumns = [ "id", "group_name" ]; 516 let condition = new dataShare.DataSharePredicates(); 517 condition.equalTo("group_name", "test120000"); 518 try { 519 var resultSet = await dataShareHelper.query(groupUri, resultColumns, condition); 520 console.info("logMessage group_update_test_1200: resultSet.rowCount = " + resultSet.rowCount); 521 expect(resultSet.rowCount == groupSize).assertTrue(); 522 resultSet.close(); 523 } catch (error) { 524 console.info('group_update_test_1200 query error ' + error); 525 done(); 526 } 527 } 528 }); 529 530 async function GroupUpdateThree(dataShareHelper) 531 { 532 let condition = new dataShare.DataSharePredicates(); 533 condition.equalTo("group_name", "test1200"); 534 var updateValue = { "group_name" : "test120000" } 535 try { 536 var updateCode = await dataShareHelper.update(groupUri, updateValue, condition); 537 console.info("logMessage group_update_test_1200: updateCode = " + updateCode); 538 expect(updateCode == 0).assertTrue(); 539 } catch (error) { 540 console.info("logMessage group_update_test_1200: update error = " + error); 541 } 542 } 543 544 afterAll(async function(done) { 545 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 546 let condition = new dataShare.DataSharePredicates(); 547 condition.notEqualTo("id", "0"); 548 try { 549 var deleteCode = await dataShareHelper.delete(groupUri, condition); 550 console.info("logMessage group_deleted : deleteCode = " + deleteCode); 551 done(); 552 } catch (error) { 553 console.info("logMessage group_deleted: group insert error = " + error); 554 done(); 555 } 556 }); 557})