1/* 2 * Copyright (c) 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' 17import factory from '@ohos.data.distributedKVStore' 18import dataShare from '@ohos.data.dataSharePredicates'; 19import abilityFeatureAbility from '@ohos.ability.featureAbility' 20 21var context = abilityFeatureAbility.getContext(); 22const KEY_TEST_INT_ELEMENT = 'key_test_int_2'; 23const KEY_TEST_FLOAT_ELEMENT = 'key_test_float_2'; 24const KEY_TEST_BOOLEAN_ELEMENT = 'key_test_boolean_2'; 25const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; 26const file = ""; 27const files = [file]; 28 29const VALUE_TEST_INT_ELEMENT = 1234; 30const VALUE_TEST_FLOAT_ELEMENT = 4321.12; 31const VALUE_TEST_BOOLEAN_ELEMENT = true; 32const VALUE_TEST_STRING_ELEMENT = 'value-string-002'; 33 34const TEST_BUNDLE_NAME = 'com.example.myapplication'; 35const TEST_STORE_ID = 'storeId3'; 36var kvManager = null; 37var kvStore = null; 38var localDeviceId = null; 39const USED_DEVICE_IDS = ['A12C1F9261528B21F95778D2FDC0B2E33943E6251AC5487F4473D005758905DB']; 40const UNUSED_DEVICE_IDS = []; /* add you test device-ids here */ 41var syncDeviceIds = USED_DEVICE_IDS.concat(UNUSED_DEVICE_IDS); 42 43function sleep(ms) { 44 return new Promise(resolve => setTimeout(resolve, ms)); 45} 46 47function putBatchString(len, prefix) { 48 let entries = []; 49 for (let i = 0; i < len; i++) { 50 var entry = { 51 key: prefix + i, 52 value: { 53 type: factory.ValueType.STRING, 54 value: 'batch_test_string_value' 55 } 56 } 57 entries.push(entry); 58 } 59 return entries; 60} 61 62describe('DeviceKvStoreCallbackTest', function () { 63 const config = { 64 bundleName: TEST_BUNDLE_NAME, 65 context: context 66 } 67 68 const options = { 69 createIfMissing: true, 70 encrypt: false, 71 backup: true, 72 autoSync: true, 73 kvStoreType: factory.KVStoreType.DEVICE_COLLABORATION, 74 schema: '', 75 securityLevel: factory.SecurityLevel.S2, 76 } 77 78 beforeAll(async function (done) { 79 console.info('beforeAll config:' + JSON.stringify(config)); 80 kvManager = factory.createKVManager(config); 81 await kvManager.getKVStore(TEST_STORE_ID, options).then((store) => { 82 kvStore = store; 83 console.info('beforeAll getKVStore for getDeviceId success'); 84 }).catch((err) => { 85 console.error('beforeAll getKVStore err ' + `, error code is ${err.code}, message is ${err.message}`); 86 }); 87 var getDeviceId = new Promise((resolve, reject) => { 88 kvStore.on('dataChange', 0, function (data) { 89 console.info('beforeAll on data change: ' + JSON.stringify(data)); 90 resolve(data.deviceId); 91 }); 92 kvStore.put("getDeviceId", "byPut").then((data) => { 93 console.info('beforeAll put success'); 94 expect(data == undefined).assertTrue(); 95 }); 96 setTimeout(() => { 97 reject(new Error('not resolved in 2 second, reject it.')) 98 }, 2000); 99 }); 100 await getDeviceId.then(function (deviceId) { 101 console.info('beforeAll getDeviceId ' + JSON.stringify(deviceId)); 102 localDeviceId = deviceId; 103 }).catch((error) => { 104 console.error('beforeAll can NOT getDeviceId, fail: ' + `, error code is ${error.code}, message is ${error.message}`); 105 expect(null).assertFail(); 106 }); 107 await kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID); 108 await kvManager.deleteKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID); 109 kvStore = null; 110 console.info('beforeAll end'); 111 done(); 112 }) 113 114 afterAll(function (done) { 115 console.info('afterAll'); 116 kvManager = null; 117 kvStore = null; 118 done(); 119 }) 120 121 beforeEach(function (done) { 122 console.info('beforeEach' + JSON.stringify(options)); 123 kvManager.getKVStore(TEST_STORE_ID, options, function (err, store) { 124 if (err) { 125 console.error('beforeEach getKVStore fail' + `, error code is ${err.code}, message is ${err.message}`); 126 done(); 127 return; 128 } 129 kvStore = store; 130 console.info('beforeEach getKVStore success'); 131 done(); 132 }); 133 }) 134 135 afterEach(function (done) { 136 console.info('afterEach'); 137 try { 138 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err, data) { 139 if (err) { 140 console.error('afterEach closeKVStore fail' + `, error code is ${err.code}, message is ${err.message}`); 141 done(); 142 } 143 console.info('afterEach closeKVStore success: err is: ' + err); 144 kvManager.deleteKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err, data) { 145 if (err) { 146 console.error('afterEach deleteKVStore fail' + `, error code is ${err.code}, message is ${err.message}`); 147 done(); 148 } 149 console.info('afterEach deleteKVStore success err is: ' + err); 150 kvStore = null; 151 done(); 152 }); 153 }); 154 } catch (e) { 155 console.error('afterEach closeKVStore err ' + `, error code is ${e.code}, message is ${e.message}`); 156 done(); 157 } 158 }) 159 160 /** 161 * @tc.name DeviceKvStorePutStringCallbackSucTest 162 * @tc.desc Test Js Api DeviceKvStore.Put(String) successfully 163 * @tc.type: FUNC 164 * @tc.require: issueNumber 165 */ 166 it('DeviceKvStorePutStringCallbackSucTest', 0, function (done) { 167 console.info('DeviceKvStorePutStringCallbackSucTest'); 168 try { 169 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { 170 if (err) { 171 console.error('DeviceKvStorePutStringCallbackSucTest fail' + `, error code is ${err.code}, message is ${err.message}`); 172 expect(null).assertFail(); 173 done(); 174 } 175 console.info('DeviceKvStorePutStringCallbackSucTest put success'); 176 done(); 177 }); 178 } catch (e) { 179 console.error('DeviceKvStorePutStringCallbackSucTest put e' + `, error code is ${e.code}, message is ${e.message}`); 180 expect(null).assertFail(); 181 done(); 182 } 183 }) 184 185 /** 186 * @tc.name DeviceKvStorePutStringCallbackInvalidArgsTest 187 * @tc.desc Test Js Api DeviceKvStore.Put(String) with invalid args 188 * @tc.type: FUNC 189 * @tc.require: issueNumber 190 */ 191 it('DeviceKvStorePutStringCallbackInvalidArgsTest', 0, function (done) { 192 console.info('DeviceKvStorePutStringCallbackInvalidArgsTest'); 193 try { 194 kvStore.put(KEY_TEST_STRING_ELEMENT, function (err, data) { 195 if (err) { 196 console.error('DeviceKvStorePutStringCallbackInvalidArgsTest fail' + `, error code is ${err.code}, message is ${err.message}`); 197 expect(null).assertFail(); 198 done(); 199 } 200 expect(null).assertFail(); 201 console.info('DeviceKvStorePutStringCallbackInvalidArgsTest put success'); 202 done(); 203 }); 204 } catch (e) { 205 console.error('DeviceKvStorePutStringCallbackInvalidArgsTest put e' + `, error code is ${e.code}, message is ${e.message}`); 206 expect(e.code == 401).assertTrue(); 207 done(); 208 } 209 }) 210 211 /** 212 * @tc.name DeviceKvStorePutStringCallbackClosedKvStoreTest 213 * @tc.desc Test Js Api DeviceKvStore.Put(String) with closed database 214 * @tc.type: FUNC 215 * @tc.require: issueNumber 216 */ 217 it('DeviceKvStorePutStringCallbackClosedKvStoreTest', 0, function (done) { 218 console.info('DeviceKvStorePutStringCallbackClosedKvStoreTest'); 219 try { 220 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 221 expect(err == undefined).assertTrue(); 222 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) { 223 if (err) { 224 console.error('DeviceKvStorePutStringCallbackClosedKvStoreTest put fail' + `, error code is ${err.code}, message is ${err.message}`); 225 expect(err.code == 15100005).assertTrue(); 226 done(); 227 return; 228 } 229 expect(null).assertFail(); 230 console.info('DeviceKvStorePutStringCallbackClosedKvStoreTest put success'); 231 done(); 232 }); 233 }); 234 } catch (e) { 235 console.error('DeviceKvStorePutStringCallbackClosedKvStoreTest put e' + `, error code is ${e.code}, message is ${e.message}`); 236 expect(null).assertFail(); 237 done(); 238 } 239 }) 240 241 /** 242 * @tc.name DeviceKvStoreGetStringCallbackNoPutTest 243 * @tc.desc Test Js Api DeviceKvStore.GetString() with no put 244 * @tc.type: FUNC 245 * @tc.require: issueNumber 246 */ 247 it('DeviceKvStoreGetStringCallbackNoPutTest', 0, function (done) { 248 console.info('DeviceKvStoreGetStringCallbackNoPutTest'); 249 try { 250 kvStore.get(localDeviceId, KEY_TEST_STRING_ELEMENT, function (err) { 251 if (err) { 252 console.info('DeviceKvStoreGetStringCallbackNoPutTest get fail'); 253 expect(err.code == 15100004).assertTrue(); 254 done(); 255 return; 256 } 257 console.info('DeviceKvStoreGetStringCallbackNoPutTest get success'); 258 expect(null).assertFail(); 259 done(); 260 }); 261 } catch (e) { 262 console.error('DeviceKvStoreGetStringCallbackTest get e' + `, error code is ${e.code}, message is ${e.message}`); 263 expect(null).assertFail(); 264 done(); 265 } 266 }) 267 268 /** 269 * @tc.name DeviceKvStoreGetStringCallbackSucTest 270 * @tc.desc Test Js Api DeviceKvStore.GetString() successfully 271 * @tc.type: FUNC 272 * @tc.require: issueNumber 273 */ 274 it('DeviceKvStoreGetStringCallbackSucTest', 0, function (done) { 275 console.info('DeviceKvStoreGetStringCallbackSucTest'); 276 try { 277 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) { 278 if (err) { 279 console.error('DeviceKvStoreGetStringCallbackSucTest put fail' + `, error code is ${err.code}, message is ${err.message}`); 280 expect(null).assertFail(); 281 done(); 282 } 283 console.info('DeviceKvStoreGetStringCallbackSucTest put success'); 284 expect(err == undefined).assertTrue(); 285 kvStore.get(localDeviceId, KEY_TEST_STRING_ELEMENT, function (err, data) { 286 if (err) { 287 console.error('DeviceKvStoreGetStringCallbackSucTest get fail' + `, error code is ${err.code}, message is ${err.message}`); 288 expect(null).assertFail(); 289 done(); 290 } 291 console.info('DeviceKvStoreGetStringCallbackSucTest get success'); 292 expect((err == undefined) && (VALUE_TEST_STRING_ELEMENT == data)).assertTrue(); 293 done(); 294 }); 295 }) 296 } catch (e) { 297 console.error('DeviceKvStoreGetStringCallbackSucTest get e' + `, error code is ${e.code}, message is ${e.message}`); 298 expect(null).assertFail(); 299 done(); 300 } 301 }) 302 303 /** 304 * @tc.name DeviceKvStoreGetStringCallbackClosedKVStoreTest 305 * @tc.desc Test Js Api DeviceKvStore.GetString() from a closed kvstore 306 * @tc.type: FUNC 307 * @tc.require: issueNumber 308 */ 309 it('DeviceKvStoreGetStringCallbackClosedKVStoreTest', 0, function (done) { 310 try { 311 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) { 312 if (err) { 313 expect(null).assertFail(); 314 done(); 315 return; 316 } 317 expect(err == undefined).assertTrue(); 318 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 319 if (err) { 320 expect(null).assertFail(); 321 done(); 322 return; 323 } 324 expect(err == undefined).assertTrue(); 325 kvStore.get(localDeviceId, KEY_TEST_STRING_ELEMENT, function (err) { 326 if (err) { 327 expect(err.code == 15100005).assertTrue(); 328 done(); 329 return; 330 } 331 expect(null).assertFail(); 332 done(); 333 }); 334 }); 335 }) 336 } catch (e) { 337 console.error('DeviceKvStoreGetStringCallbackClosedKVStoreTest get e' + `, error code is ${e.code}, message is ${e.message}`); 338 expect(null).assertFail(); 339 done(); 340 } 341 }) 342 343 /** 344 * @tc.name DeviceKvStoreGetStringCallbackInvalidArgsTest 345 * @tc.desc Test Js Api DeviceKvStore.GetString() with invalid args 346 * @tc.type: FUNC 347 * @tc.require: issueNumber 348 */ 349 it('DeviceKvStoreGetStringCallbackInvalidArgsTest', 0, function (done) { 350 try { 351 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) { 352 if (err) { 353 console.error('DeviceKvStoreGetStringCallbackInvalidArgsTest put fail' + `, error code is ${err.code}, message is ${err.message}`); 354 expect(null).assertFail(); 355 done(); 356 return; 357 } 358 console.info('DeviceKvStoreGetStringCallbackInvalidArgsTest put success'); 359 expect(err == undefined).assertTrue(); 360 try { 361 kvStore.get(function (err, data) { 362 if (err) { 363 console.error('DeviceKvStoreGetStringCallbackInvalidArgsTest get fail' + `, error code is ${err.code}, message is ${err.message}`); 364 expect(null).assertFail(); 365 done(); 366 return; 367 } 368 expect(null).assertFail(); 369 done(); 370 }); 371 } catch (e) { 372 console.error('DeviceKvStoreGetStringCallbackInvalidArgsTest get error' + `, error code is ${e.code}, message is ${e.message}`); 373 expect(e.code == 401).assertTrue(); 374 done(); 375 } 376 }) 377 } catch (e) { 378 console.error('DeviceKvStoreGetStringCallbackInvalidArgsTest get e' + `, error code is ${e.code}, message is ${e.message}`); 379 expect(null).assertFail(); 380 done(); 381 } 382 }) 383 384 /** 385 * @tc.name DeviceKvStorePutIntCallbackSucTest 386 * @tc.desc Test Js Api DeviceKvStore.Put(Int) successfully 387 * @tc.type: FUNC 388 * @tc.require: issueNumber 389 */ 390 it('DeviceKvStorePutIntCallbackSucTest', 0, function (done) { 391 console.info('DeviceKvStorePutIntCallbackSucTest'); 392 try { 393 kvStore.put(KEY_TEST_INT_ELEMENT, VALUE_TEST_INT_ELEMENT, function (err) { 394 if (err) { 395 console.error('DeviceKvStorePutIntCallbackSucTest put fail' + `, error code is ${err.code}, message is ${err.message}`); 396 expect(null).assertFail(); 397 done(); 398 } 399 console.info('DeviceKvStorePutIntCallbackSucTest put success'); 400 expect(err == undefined).assertTrue(); 401 kvStore.get(localDeviceId, KEY_TEST_INT_ELEMENT, function (err, data) { 402 if (err) { 403 console.error('DeviceKvStorePutIntCallbackSucTest get fail' + `, error code is ${err.code}, message is ${err.message}`); 404 expect(null).assertFail(); 405 done(); 406 } 407 console.info('DeviceKvStorePutIntCallbackSucTest get success'); 408 expect((err == undefined) && (VALUE_TEST_INT_ELEMENT == data)).assertTrue(); 409 done(); 410 }) 411 }); 412 } catch (e) { 413 console.error('DeviceKvStorePutIntCallbackSucTest put e' + `, error code is ${e.code}, message is ${e.message}`); 414 expect(null).assertFail(); 415 done(); 416 } 417 }) 418 419 /** 420 * @tc.name DeviceKvStorePutIntCallbackMaxTest 421 * @tc.desc Test Js Api DeviceKvStore.Put(Int) with max value 422 * @tc.type: FUNC 423 * @tc.require: issueNumber 424 */ 425 it('DeviceKvStorePutIntCallbackMaxTest', 0, function (done) { 426 console.info('DeviceKvStorePutIntCallbackMaxTest'); 427 try { 428 var intValue = Number.MIN_VALUE; 429 kvStore.put(KEY_TEST_INT_ELEMENT, intValue, function (err) { 430 console.info('DeviceKvStorePutIntCallbackMaxTest put success'); 431 expect(err == undefined).assertTrue(); 432 kvStore.get(localDeviceId, KEY_TEST_INT_ELEMENT, function (err, data) { 433 console.info('DeviceKvStorePutIntCallbackMaxTest get success'); 434 expect((err == undefined) && (intValue == data)).assertTrue(); 435 done() 436 }) 437 }); 438 } catch (e) { 439 console.error('DeviceKvStorePutIntCallbackMaxTest put e' + `, error code is ${e.code}, message is ${e.message}`); 440 expect(null).assertFail(); 441 done() 442 } 443 }) 444 445 /** 446 * @tc.name DeviceKvStorePutIntCallbackMinTest 447 * @tc.desc Test Js Api DeviceKvStore.Put(Int) with min value 448 * @tc.type: FUNC 449 * @tc.require: issueNumber 450 */ 451 it('DeviceKvStorePutIntCallbackMinTest', 0, function (done) { 452 console.info('DeviceKvStorePutIntCallbackMinTest'); 453 try { 454 var intValue = Number.MAX_VALUE; 455 kvStore.put(KEY_TEST_INT_ELEMENT, intValue, function (err) { 456 console.info('DeviceKvStorePutIntCallbackMinTest put success'); 457 expect(err == undefined).assertTrue(); 458 kvStore.get(localDeviceId, KEY_TEST_INT_ELEMENT, function (err, data) { 459 console.info('DeviceKvStorePutIntCallbackMinTest get success'); 460 expect((err == undefined) && (intValue == data)).assertTrue(); 461 done(); 462 }) 463 }); 464 } catch (e) { 465 console.error('DeviceKvStorePutIntCallbackMinTest put e' + `, error code is ${e.code}, message is ${e.message}`); 466 expect(null).assertFail(); 467 done(); 468 } 469 }) 470 471 /** 472 * @tc.name DeviceKvStoreGetIntCallbackNonExistTest 473 * @tc.desc Test Js Api DeviceKvStore.GetInt() get non-exsiting int 474 * @tc.type: FUNC 475 * @tc.require: issueNumber 476 */ 477 it('DeviceKvStoreGetIntCallbackTest', 0, function (done) { 478 console.info('DeviceKvStoreGetIntCallbackTest'); 479 try { 480 kvStore.get(localDeviceId, KEY_TEST_INT_ELEMENT, function (err) { 481 if (err) { 482 console.error('DeviceKvStoreGetIntCallbackTest get fail'); 483 expect(err.code == 15100004).assertTrue(); 484 done(); 485 return; 486 } 487 console.info('DeviceKvStoreGetIntCallbackTest get success'); 488 expect(null).assertFail(); 489 done(); 490 }) 491 } catch (e) { 492 console.error('DeviceKvStoreGetIntCallbackTest put e' + `, error code is ${e.code}, message is ${e.message}`); 493 expect(null).assertFail(); 494 done(); 495 } 496 }) 497 498 /** 499 * @tc.name DeviceKvStorePutBoolCallbackTest 500 * @tc.desc Test Js Api DeviceKvStore.Put(Bool) successfully 501 * @tc.type: FUNC 502 * @tc.require: issueNumber 503 */ 504 it('DeviceKvStorePutBoolCallbackTest', 0, function (done) { 505 console.info('DeviceKvStorePutBoolCallbackTest'); 506 try { 507 kvStore.put(KEY_TEST_BOOLEAN_ELEMENT, VALUE_TEST_BOOLEAN_ELEMENT, function (err) { 508 console.info('DeviceKvStorePutBoolCallbackTest put success'); 509 expect(err == undefined).assertTrue(); 510 done(); 511 }); 512 } catch (e) { 513 console.error('DeviceKvStorePutBoolCallbackTest fail' + `, error code is ${e.code}, message is ${e.message}`); 514 expect(null).assertFail(); 515 done(); 516 } 517 }) 518 519 /** 520 * @tc.name DeviceKvStoreGetBoolCallbackSucTest 521 * @tc.desc Test Js Api DeviceKvStore.GetBool() successfully 522 * @tc.type: FUNC 523 * @tc.require: issueNumber 524 */ 525 it('DeviceKvStoreGetBoolCallbackSucTest', 0, function (done) { 526 console.info('DeviceKvStoreGetBoolCallbackSucTest'); 527 try { 528 kvStore.put(KEY_TEST_BOOLEAN_ELEMENT, VALUE_TEST_BOOLEAN_ELEMENT, function (err, data) { 529 console.info('DeviceKvStoreGetBoolCallbackSucTest put success'); 530 expect(err == undefined).assertTrue(); 531 kvStore.get(localDeviceId, KEY_TEST_BOOLEAN_ELEMENT, function (err, data) { 532 console.info('DeviceKvStoreGetBoolCallbackSucTest get success'); 533 console.info(data); 534 expect((err == undefined) && (VALUE_TEST_BOOLEAN_ELEMENT == data)).assertTrue(); 535 done(); 536 }); 537 }) 538 } catch (e) { 539 console.error('DeviceKvStoreGetBoolCallbackSucTest e' + `, error code is ${e.code}, message is ${e.message}`); 540 expect(null).assertFail(); 541 done(); 542 } 543 }) 544 545 /** 546 * @tc.name DeviceKvStorePutFloatCallbackSucTest 547 * @tc.desc Test Js Api DeviceKvStore.Put(Float) successfully 548 * @tc.type: FUNC 549 * @tc.require: issueNumber 550 */ 551 it('DeviceKvStorePutFloatCallbackSucTest', 0, function (done) { 552 console.info('DeviceKvStorePutFloatCallbackSucTest'); 553 try { 554 kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT, function (err, data) { 555 console.info('DeviceKvStorePutFloatCallbackSucTest put success'); 556 expect(err == undefined).assertTrue(); 557 done(); 558 }); 559 } catch (e) { 560 console.error('DeviceKvStorePutFloatCallbackSucTest e' + `, error code is ${e.code}, message is ${e.message}`); 561 expect(null).assertFail(); 562 done(); 563 } 564 }) 565 566 /** 567 * @tc.name DeviceKvStoreGetFloatCallbackSucTest 568 * @tc.desc Test Js Api DeviceKvStore.GetFloat() successfully 569 * @tc.type: FUNC 570 * @tc.require: issueNumber 571 */ 572 it('DeviceKvStoreGetFloatCallbackSucTest', 0, function (done) { 573 console.info('DeviceKvStoreGetFloatCallbackSucTest'); 574 try { 575 kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT, function (err, data) { 576 console.info('DeviceKvStoreGetFloatCallbackSucTest put success'); 577 expect(err == undefined).assertTrue(); 578 kvStore.get(localDeviceId, KEY_TEST_FLOAT_ELEMENT, function (err, data) { 579 if (err) { 580 console.error('DeviceKvStoreGetFloatCallbackSucTest get fail' + `, error code is ${err.code}, message is ${err.message}`); 581 expect(null).assertFail(); 582 done(); 583 } 584 console.info('DeviceKvStoreGetFloatCallbackSucTest get success'); 585 expect(true).assertTrue(); 586 done(); 587 }); 588 }); 589 } catch (e) { 590 console.error('DeviceKvStoreGetFloatCallbackSucTest e' + `, error code is ${e.code}, message is ${e.message}`); 591 expect(null).assertFail(); 592 done(); 593 } 594 }) 595 596 /** 597 * @tc.name DeviceKvStoreDeleteStringCallbackSucTest 598 * @tc.desc Test Js Api DeviceKvStore.DeleteString() successfully 599 * @tc.type: FUNC 600 * @tc.require: issueNumber 601 */ 602 it('DeviceKvStoreDeleteStringCallbackSucTest', 0, function (done) { 603 console.info('DeviceKvStoreDeleteStringCallbackSucTest'); 604 try { 605 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { 606 if (err) { 607 expect(null).assertFail(); 608 done(); 609 } 610 console.info('DeviceKvStoreDeleteStringCallbackSucTest put success'); 611 kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err, data) { 612 if (err) { 613 expect(null).assertFail(); 614 done(); 615 } 616 console.info('DeviceKvStoreDeleteStringCallbackSucTest delete success'); 617 expect(true).assertTrue(); 618 done(); 619 }); 620 }) 621 } catch (e) { 622 console.error('DeviceKvStoreDeleteStringCallbackSucTest e' + `, error code is ${e.code}, message is ${e.message}`); 623 expect(null).assertFail(); 624 done(); 625 } 626 }) 627 628 /** 629 * @tc.name DeviceKvStoreDeleteStringCallbackInvalid ArgsTest 630 * @tc.desc Test Js Api DeviceKvStore.DeleteString() with invalid args 631 * @tc.type: FUNC 632 * @tc.require: issueNumber 633 */ 634 it('DeviceKvStoreDeleteStringCallbackInvalidArgsTest', 0, function (done) { 635 console.info('DeviceKvStoreDeleteStringCallbackInvalidArgsTest'); 636 try { 637 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { 638 console.info('DeviceKvStoreDeleteStringCallbackInvalidArgsTest put success'); 639 expect(err == undefined).assertTrue(); 640 try { 641 kvStore.delete(function (err) { 642 console.info('DeviceKvStoreDeleteStringCallbackInvalidArgsTest delete success'); 643 expect(null).assertFail(); 644 done(); 645 }); 646 } catch (e) { 647 console.error('DeviceKvStoreDeleteStringCallbackInvalidArgsTest delete fail' + `, error code is ${e.code}, message is ${e.message}`); 648 expect(e.code == 401).assertTrue(); 649 done(); 650 } 651 }) 652 } catch (e) { 653 console.error('DeviceKvStoreDeleteStringCallbackInvalidArgsTest put fail' + `, error code is ${e.code}, message is ${e.message}`); 654 expect(e.code == 401).assertTrue(); 655 done(); 656 } 657 }) 658 659 /** 660 * @tc.name DeviceKvStoreDeleteCallbackClosedKVStoreTest 661 * @tc.desc Test Js Api DeviceKvStore.Delete() into a closed kvstore 662 * @tc.type: FUNC 663 * @tc.require: issueNumber 664 */ 665 it('DeviceKvStoreDeleteCallbackClosedKVStoreTest', 0, function (done) { 666 try { 667 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) { 668 if (err) { 669 console.error('DeviceKvStorePutStringCallbackClosedKvStoreTest put fail' + `, error code is ${err.code}, message is ${err.message}`); 670 expect(null).assertFail(); 671 done(); 672 return; 673 } 674 expect(true).assertTrue(); 675 console.info('DeviceKvStorePutStringCallbackClosedKvStoreTest put success'); 676 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 677 if (err) { 678 expect(null).assertFail(); 679 done(); 680 return; 681 } 682 expect(err == undefined).assertTrue(); 683 kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err) { 684 if (err) { 685 expect(err.code == 15100005).assertTrue(); 686 done(); 687 return; 688 } 689 expect(null).assertFail(); 690 done(); 691 }); 692 }); 693 }); 694 } catch (e) { 695 console.error('DeviceKvStorePutStringCallbackClosedKvStoreTest put e' + `, error code is ${e.code}, message is ${e.message}`); 696 expect(null).assertFail(); 697 done(); 698 } 699 }) 700 701 /** 702 * @tc.name DeviceKvStoreDeleteIntCallbackSucTest 703 * @tc.desc Test Js Api DeviceKvStore.DeleteInt() successfully 704 * @tc.type: FUNC 705 * @tc.require: issueNumber 706 */ 707 it('DeviceKvStoreDeleteIntCallbackSucTest', 0, function (done) { 708 console.info('DeviceKvStoreDeleteIntCallbackSucTest'); 709 try { 710 kvStore.put(KEY_TEST_INT_ELEMENT, VALUE_TEST_INT_ELEMENT, function (err, data) { 711 console.info('DeviceKvStoreDeleteIntCallbackSucTest put success'); 712 expect(err == undefined).assertTrue(); 713 kvStore.delete(KEY_TEST_INT_ELEMENT, function (err, data) { 714 console.info('DeviceKvStoreDeleteIntCallbackSucTest delete success'); 715 expect(err == undefined).assertTrue(); 716 done(); 717 }); 718 }) 719 } catch (e) { 720 console.error('DeviceKvStoreDeleteIntCallbackSucTest e' + `, error code is ${e.code}, message is ${e.message}`); 721 expect(null).assertFail(); 722 done(); 723 } 724 }) 725 726 /** 727 * @tc.name DeviceKvStoreDeleteFloatCallbackSucTest 728 * @tc.desc Test Js Api DeviceKvStore.DeleteFloat() successfully 729 * @tc.type: FUNC 730 * @tc.require: issueNumber 731 */ 732 it('DeviceKvStoreDeleteFloatCallbackSucTest', 0, function (done) { 733 console.info('DeviceKvStoreDeleteFloatCallbackSucTest'); 734 try { 735 kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT, function (err, data) { 736 console.info('DeviceKvStoreDeleteFloatCallbackSucTest put success'); 737 expect(err == undefined).assertTrue(); 738 kvStore.delete(KEY_TEST_FLOAT_ELEMENT, function (err, data) { 739 console.info('DeviceKvStoreDeleteFloatCallbackSucTest delete success'); 740 expect(err == undefined).assertTrue(); 741 done(); 742 }); 743 }) 744 } catch (e) { 745 console.error('DeviceKvStoreDeleteFloatCallbackSucTest e' + `, error code is ${e.code}, message is ${e.message}`); 746 expect(null).assertFail(); 747 done(); 748 } 749 }) 750 751 /** 752 * @tc.name DeviceKvStoreDeleteBoolCallbackSucTest 753 * @tc.desc Test Js Api DeviceKvStore.DeleteBool() successfully 754 * @tc.type: FUNC 755 * @tc.require: issueNumber 756 */ 757 it('DeviceKvStoreDeleteBoolCallbackSucTest', 0, function (done) { 758 console.info('DeviceKvStoreDeleteBoolCallbackSucTest'); 759 try { 760 kvStore.put(KEY_TEST_BOOLEAN_ELEMENT, VALUE_TEST_BOOLEAN_ELEMENT, function (err, data) { 761 console.info('DeviceKvStoreDeleteBoolCallbackSucTest put success'); 762 expect(err == undefined).assertTrue(); 763 kvStore.delete(KEY_TEST_BOOLEAN_ELEMENT, function (err, data) { 764 console.info('DeviceKvStoreDeleteBoolCallbackSucTest delete success'); 765 expect(err == undefined).assertTrue(); 766 done(); 767 }); 768 }) 769 } catch (e) { 770 console.error('DeviceKvStoreDeleteBoolCallbackSucTest e' + `, error code is ${e.code}, message is ${e.message}`); 771 expect(null).assertFail(); 772 done(); 773 } 774 }) 775 776 /** 777 * @tc.name DeviceKvStoreDeletePredicatesCallbackTest 778 * @tc.desc Test Js Api DeviceKvStore.Delete() 779 * @tc.type: FUNC 780 * @tc.require: issueNumber 781 */ 782 it('DeviceKvStoreDeletePredicatesCallbackTest', 0, function (done) { 783 console.log('DeviceKvStoreDeletePredicatesCallbackTest'); 784 try { 785 let predicates = new dataShare.DataSharePredicates(); 786 let arr = ["name"]; 787 predicates.inKeys(arr); 788 kvStore.delete(predicates, function (err, data) { 789 if (err) { 790 console.error('DeviceKvStoreDeletePredicatesCallbackTest delete fail' + `, error code is ${err.code}, message is ${err.message}`); 791 expect(null).assertFail(); 792 done(); 793 } 794 console.error('DeviceKvStoreDeletePredicatesCallbackTest delete success'); 795 expect(null).assertFail(); 796 done(); 797 }); 798 } catch (e) { 799 console.info('DeviceKvStoreDeletePredicatesCallbackTest fail' + `, error code is ${e.code}, message is ${e.message}`); 800 expect(e.code == 202).assertTrue(); 801 done(); 802 } 803 }) 804 805 /** 806 * @tc.name DeviceKvStoreOnChangeCallbackType0Test 807 * @tc.desc Test Js Api DeviceKvStore.OnChange() with type 0 808 * @tc.type: FUNC 809 * @tc.require: issueNumber 810 */ 811 it('DeviceKvStoreOnChangeCallbackTest', 0, function (done) { 812 console.info('DeviceKvStoreOnChangeCallbackTest'); 813 try { 814 kvStore.on('dataChange', 0, function (data) { 815 console.info('DeviceKvStoreOnChangeCallbackTest dataChange'); 816 expect(data != null).assertTrue(); 817 }); 818 kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT, function (err, data) { 819 console.info('DeviceKvStoreOnChangeCallbackTest put success'); 820 expect(err == undefined).assertTrue(); 821 done(); 822 }); 823 } catch (e) { 824 console.error('DeviceKvStoreOnChangeCallbackTest e' + `, error code is ${e.code}, message is ${e.message}`); 825 expect(null).assertFail(); 826 done(); 827 } 828 }) 829 830 /** 831 * @tc.name DeviceKvStoreOnChangeCallbackType1Test 832 * @tc.desc Test Js Api DeviceKvStore.OnChange() with type 1 833 * @tc.type: FUNC 834 * @tc.require: issueNumber 835 */ 836 it('DeviceKvStoreOnChangeCallbackType1Test', 0, function (done) { 837 console.info('DeviceKvStoreOnChangeCallbackType1Test'); 838 try { 839 kvStore.on('dataChange', 1, function (data) { 840 console.info('DeviceKvStoreOnChangeCallbackType1Test dataChange'); 841 expect(data != null).assertTrue(); 842 }); 843 kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT, function (err, data) { 844 console.info('DeviceKvStoreOnChangeCallbackType1Test put success'); 845 expect(err == undefined).assertTrue(); 846 done(); 847 }); 848 } catch (e) { 849 console.error('DeviceKvStoreOnChangeCallbackType1Test e' + `, error code is ${e.code}, message is ${e.message}`); 850 expect(null).assertFail(); 851 done(); 852 } 853 }) 854 855 /** 856 * @tc.name DeviceKvStoreOnChangeCallbackType2Test 857 * @tc.desc Test Js Api DeviceKvStore.OnChange() with type 2 858 * @tc.type: FUNC 859 * @tc.require: issueNumber 860 */ 861 it('DeviceKvStoreOnChangeCallbackType2Test', 0, function (done) { 862 console.info('DeviceKvStoreOnChangeCallbackType2Test'); 863 try { 864 kvStore.on('dataChange', 2, function (data) { 865 console.info('DeviceKvStoreOnChangeCallbackType2Test dataChange'); 866 expect(data != null).assertTrue(); 867 }); 868 kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT, function (err, data) { 869 console.info('DeviceKvStoreOnChangeCallbackType2Test put success'); 870 expect(err == undefined).assertTrue(); 871 done(); 872 }); 873 } catch (e) { 874 console.error('DeviceKvStoreOnChangeCallbackType2Test e' + `, error code is ${e.code}, message is ${e.message}`); 875 expect(null).assertFail(); 876 done(); 877 } 878 }) 879 880 /** 881 * @tc.name DeviceKvStoreOnChangeCallbackClosedKVStoreTest 882 * @tc.desc Test Js Api DeviceKvStore.OnChange() subscribe a closed kvstore 883 * @tc.type: FUNC 884 * @tc.require: issueNumber 885 */ 886 it('DeviceKvStoreOnChangeCallbackClosedKVStoreTest', 0, function (done) { 887 console.info('DeviceKvStoreOnChangeCallbackClosedKVStoreTest'); 888 try { 889 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 890 expect(err == undefined).assertTrue(); 891 try { 892 kvStore.on('dataChange', 2, function () { 893 expect(null).assertFail(); 894 done(); 895 }); 896 } catch (e) { 897 console.error('DeviceKvStoreOnChangeCallbackClosedKVStoreTest onDataChange fail' + `, error code is ${e.code}, message is ${e.message}`); 898 expect(e.code == 15100005).assertTrue(); 899 done(); 900 } 901 }); 902 } catch (e) { 903 console.error('DeviceKvStoreOnChangeCallbackClosedKVStoreTest closeKVStore' + `, error code is ${e.code}, message is ${e.message}`); 904 expect(e.code == 401).assertFail(); 905 done(); 906 } 907 }) 908 909 /** 910 * @tc.name DeviceKvStoreOnChangeCallbackPassMaxTest 911 * @tc.desc Test Js Api DeviceKvStore.OnChange() pass max subscription time 912 * @tc.type: FUNC 913 * @tc.require: issueNumber 914 */ 915 it('DeviceKvStoreOnChangeCallbackPassMaxTest', 0, function (done) { 916 console.info('DeviceKvStoreOnChangeCallbackPassMaxTest'); 917 try { 918 for (let i = 0; i < 8; i++) { 919 kvStore.on('dataChange', 0, function (data) { 920 console.info('DeviceKvStoreOnChangeCallbackPassMaxTest dataChange'); 921 expect(data != null).assertTrue(); 922 }); 923 } 924 kvStore.on('dataChange', 0, function (err) { 925 expect(null).assertFail(); 926 done(); 927 }); 928 } catch (e) { 929 console.error('DeviceKvStoreOnChangeCallbackPassMaxTest e' + `, error code is ${e.code}, message is ${e.message}`); 930 expect(e.code == 15100001).assertTrue(); 931 done(); 932 } 933 }) 934 935 /** 936 * @tc.name DeviceKvStoreOnChangeCallbackInvalidArgsTest 937 * @tc.desc Test Js Api DeviceKvStore.OnChange() with invalid args 938 * @tc.type: FUNC 939 * @tc.require: issueNumber 940 */ 941 it('DeviceKvStoreOnChangeCallbackInvalidArgsTest', 0, function (done) { 942 console.info('DeviceKvStoreOnChangeCallbackInvalidArgsTest'); 943 try { 944 kvStore.on('dataChange', function () { 945 console.info('DeviceKvStoreOnChangeCallbackInvalidArgsTest dataChange'); 946 expect(null).assertFail(); 947 done(); 948 }); 949 } catch (e) { 950 console.error('DeviceKvStoreOnChangeCallbackInvalidArgsTest e' + `, error code is ${e.code}, message is ${e.message}`); 951 expect(e.code == 401).assertTrue(); 952 done(); 953 } 954 }) 955 956 /** 957 * @tc.name DeviceKvStoreOffChangeCallbackSucTest 958 * @tc.desc Test Js Api DeviceKvStoreOffChange success 959 * @tc.type: FUNC 960 * @tc.require: issueNumber 961 */ 962 it('DeviceKvStoreOffChangeCallbackSucTest', 0, function (done) { 963 console.info('DeviceKvStoreOffChangePromiseSucTest'); 964 try { 965 var func = function (data) { 966 console.info('DeviceKvStoreOffChangeCallbackSucTest ' + JSON.stringify(data)); 967 }; 968 kvStore.on('dataChange', 0, func); 969 kvStore.off('dataChange', func); 970 done(); 971 } catch (e) { 972 console.error('DeviceKvStoreOffChangeCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 973 expect(null).assertFail(); 974 done(); 975 } 976 }) 977 978 /** 979 * @tc.name DeviceKvStoreOffChangeCallbackInvalidArgsTest 980 * @tc.desc Test Js Api DeviceKvStoreOffChange with invalid args 981 * @tc.type: FUNC 982 * @tc.require: issueNumber 983 */ 984 it('DeviceKvStoreOffChangeCallbackInvalidArgsTest', 0, function (done) { 985 console.info('DeviceKvStoreOffChangeCallbackInvalidArgsTest'); 986 try { 987 kvStore.on('dataChange', 0, function (data) { 988 console.info('DeviceKvStoreOffChangeCallbackInvalidArgsTest ' + JSON.stringify(data)); 989 }); 990 kvStore.off('dataChange', 1, function (err) { 991 expect(null).assertFail(); 992 }); 993 done(); 994 } catch (e) { 995 console.info('DeviceKvStoreOffChangeCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 996 expect(e.code == 401).assertTrue(); 997 done(); 998 } 999 }) 1000 1001 /** 1002 * @tc.name DeviceKvStoreOffSyncCompleteCallbackSucTest 1003 * @tc.desc Test Js Api DeviceKvStoreOffSyncComplete success 1004 * @tc.type: FUNC 1005 * @tc.require: issueNumber 1006 */ 1007 it('DeviceKvStoreOffSyncCompleteCallbackSucTest', 0, function (done) { 1008 console.info('DeviceKvStoreOffSyncCompleteCallbackSucTest'); 1009 try { 1010 var func = function (data) { 1011 console.info('DeviceKvStoreOffSyncCompleteCallbackSucTest 0' + data) 1012 }; 1013 kvStore.off('syncComplete', func); 1014 expect(true).assertTrue(); 1015 done(); 1016 } catch (e) { 1017 console.error('DeviceKvStoreOffSyncCompleteCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1018 expect(null).assertFail(); 1019 done(); 1020 } 1021 }) 1022 1023 /** 1024 * @tc.name DeviceKvStoreOffSyncCompleteCallbackInvalidArgsTest 1025 * @tc.desc Test Js Api DeviceKvStoreOffSyncComplete with invalid args 1026 * @tc.type: FUNC 1027 * @tc.require: issueNumber 1028 */ 1029 it('DeviceKvStoreOffSyncCompleteCallbackInvalidArgsTest', 0, function (done) { 1030 console.info('DeviceKvStoreOffSyncCompleteCallbackInvalidArgsTest'); 1031 try { 1032 kvStore.off(function (err) { 1033 if (err) { 1034 expect(null).assertFail(); 1035 done(); 1036 } 1037 expect(null).assertFail(); 1038 done(); 1039 }); 1040 } catch (e) { 1041 console.info('DeviceKvStoreOffSyncCompleteCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1042 expect(e.code == 401).assertTrue(); 1043 done(); 1044 } 1045 }) 1046 1047 /** 1048 * @tc.name DeviceKvStoreSetSyncRangeCallbackDisjointTest 1049 * @tc.desc Test Js Api DeviceKvStore.SetSyncRange() with disjoint ranges 1050 * @tc.type: FUNC 1051 * @tc.require: issueNumber 1052 */ 1053 it('DeviceKvStoreSetSyncRangeCallbackDisjointTest', 0, function (done) { 1054 console.info('DeviceKvStoreSetSyncRangeCallbackDisjointTest'); 1055 try { 1056 var localLabels = ['A', 'B']; 1057 var remoteSupportLabels = ['C', 'D']; 1058 kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err, data) { 1059 console.info('DeviceKvStoreSetSyncRangeCallbackDisjointTest setSyncRange success'); 1060 expect(err == undefined).assertTrue(); 1061 done(); 1062 }); 1063 } catch (e) { 1064 console.error('DeviceKvStoreSetSyncRangeCallbackDisjointTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1065 expect(null).assertFail(); 1066 done(); 1067 } 1068 }) 1069 1070 /** 1071 * @tc.name DeviceKvStoreSetSyncRangeCallbackJointTest 1072 * @tc.desc Test Js Api DeviceKvStore.SetSyncRange() with joint range 1073 * @tc.type: FUNC 1074 * @tc.require: issueNumber 1075 */ 1076 it('DeviceKvStoreSetSyncRangeCallbackTest', 0, function (done) { 1077 console.info('DeviceKvStoreSetSyncRangeCallbackTest'); 1078 try { 1079 var localLabels = ['A', 'B']; 1080 var remoteSupportLabels = ['B', 'C']; 1081 kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err, data) { 1082 console.info('DeviceKvStoreSetSyncRangeCallbackTest setSyncRange success'); 1083 expect(err == undefined).assertTrue(); 1084 done(); 1085 }); 1086 } catch (e) { 1087 console.error('DeviceKvStoreSetSyncRangeCallbackTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1088 expect(null).assertFail(); 1089 done(); 1090 } 1091 }) 1092 1093 /** 1094 * @tc.name DeviceKvStoreSetSyncRangeCallbackSameTest 1095 * @tc.desc Test Js Api DeviceKvStore.SetSyncRange() with same range 1096 * @tc.type: FUNC 1097 * @tc.require: issueNumber 1098 */ 1099 it('DeviceKvStoreSetSyncRangeCallbackSameTest', 0, function (done) { 1100 console.info(' DeviceKvStoreSetSyncRangeCallbackSameTest'); 1101 try { 1102 var localLabels = ['A', 'B']; 1103 var remoteSupportLabels = ['A', 'B']; 1104 kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err, data) { 1105 console.info(' DeviceKvStoreSetSyncRangeCallbackSameTest put success'); 1106 expect(err == undefined).assertTrue(); 1107 done(); 1108 }); 1109 } catch (e) { 1110 console.error('DeviceKvStoreSetSyncRangeCallbackSameTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1111 expect(null).assertFail(); 1112 done(); 1113 } 1114 }) 1115 1116 /** 1117 * @tc.name DeviceKvStoreSetSyncRangeCallbackInvalidArgsTest 1118 * @tc.desc Test Js Api DeviceKvStore.SetSyncRange() with invalid args 1119 * @tc.type: FUNC 1120 * @tc.require: issueNumber 1121 */ 1122 it('DeviceKvStoreSetSyncRangeCallbackSameTest', 0, function (done) { 1123 console.info(' DeviceKvStoreSetSyncRangeCallbackSameTest'); 1124 try { 1125 var remoteSupportLabels = ['A', 'B']; 1126 kvStore.setSyncRange(remoteSupportLabels, function (err) { 1127 expect(null).assertFail(); 1128 done(); 1129 }); 1130 } catch (e) { 1131 console.error('DeviceKvStoreSetSyncRangeCallbackSameTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1132 expect(e.code == 401).assertTrue(); 1133 done(); 1134 } 1135 }) 1136 1137 /** 1138 * @tc.name DeviceKvStorePutBatchEntryCallbackStringTest 1139 * @tc.desc Test Js Api DeviceKvStore.PutBatch() with string value 1140 * @tc.type: FUNC 1141 * @tc.require: issueNumber 1142 */ 1143 it('DeviceKvStorePutBatchEntryCallbackStringTest', 0, function (done) { 1144 console.info('DeviceKvStorePutBatchEntryCallbackStringTest'); 1145 try { 1146 let entries = []; 1147 for (var i = 0; i < 10; i++) { 1148 var key = 'batch_test_string_key'; 1149 var entry = { 1150 key: key + i, 1151 value: { 1152 type: factory.ValueType.STRING, 1153 value: 'batch_test_string_value' 1154 } 1155 } 1156 entries.push(entry); 1157 } 1158 console.info('DeviceKvStorePutBatchEntryCallbackStringTest entries: ' + JSON.stringify(entries)); 1159 kvStore.putBatch(entries, function (err, data) { 1160 console.info('DeviceKvStorePutBatchEntryCallbackStringTest putBatch success'); 1161 expect(err == undefined).assertTrue(); 1162 kvStore.getEntries(localDeviceId, 'batch_test_string_key', function (err, entrys) { 1163 expect(entrys.length == 10).assertTrue(); 1164 expect(entrys[0].value.value == 'batch_test_string_value').assertTrue(); 1165 done(); 1166 }); 1167 }); 1168 } catch (e) { 1169 console.error('DeviceKvStorePutBatchEntryCallbackStringTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1170 expect(null).assertFail(); 1171 done(); 1172 } 1173 }) 1174 1175 /** 1176 * @tc.name DeviceKvStorePutBatchEntryCallbackIntegerTest 1177 * @tc.desc Test Js Api DeviceKvStore.PutBatch() with integer value 1178 * @tc.type: FUNC 1179 * @tc.require: issueNumber 1180 */ 1181 it('DeviceKvStorePutBatchEntryCallbackIntegerTest', 0, function (done) { 1182 console.info('DeviceKvStorePutBatchEntryCallbackIntegerTest'); 1183 try { 1184 let entries = []; 1185 for (var i = 0; i < 10; i++) { 1186 var key = 'batch_test_number_key'; 1187 var entry = { 1188 key: key + i, 1189 value: { 1190 type: factory.ValueType.INTEGER, 1191 value: 222 1192 } 1193 } 1194 entries.push(entry); 1195 } 1196 console.info('DeviceKvStorePutBatchEntryCallbackIntegerTest entries: ' + JSON.stringify(entries)); 1197 kvStore.putBatch(entries, function (err, data) { 1198 console.info('DeviceKvStorePutBatchEntryCallbackIntegerTest putBatch success'); 1199 expect(err == undefined).assertTrue(); 1200 kvStore.getEntries(localDeviceId, 'batch_test_number_key', function (err, entrys) { 1201 expect(entrys.length == 10).assertTrue(); 1202 expect(entrys[0].value.value == 222).assertTrue(); 1203 done(); 1204 }); 1205 }); 1206 } catch (e) { 1207 console.error('DeviceKvStorePutBatchEntryCallbackIntegerTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1208 expect(null).assertFail(); 1209 done(); 1210 } 1211 }) 1212 1213 /** 1214 * @tc.name DeviceKvStorePutBatchEntryCallbackFloatTest 1215 * @tc.desc Test Js Api DeviceKvStore.PutBatch() with float value 1216 * @tc.type: FUNC 1217 * @tc.require: issueNumber 1218 */ 1219 it('DeviceKvStorePutBatchEntryCallbackFloatTest', 0, function (done) { 1220 console.info('DeviceKvStorePutBatchEntryCallbackFloatTest'); 1221 try { 1222 let entries = []; 1223 for (var i = 0; i < 10; i++) { 1224 var key = 'batch_test_number_key'; 1225 var entry = { 1226 key: key + i, 1227 value: { 1228 type: factory.ValueType.FLOAT, 1229 value: 2.0 1230 } 1231 } 1232 entries.push(entry); 1233 } 1234 console.info('DeviceKvStorePutBatchEntryCallbackFloatTest entries: ' + JSON.stringify(entries)); 1235 kvStore.putBatch(entries, function (err, data) { 1236 console.info('DeviceKvStorePutBatchEntryCallbackFloatTest putBatch success'); 1237 expect(err == undefined).assertTrue(); 1238 kvStore.getEntries(localDeviceId, 'batch_test_number_key', function (err, entrys) { 1239 expect(entrys.length == 10).assertTrue(); 1240 expect(entrys[0].value.value == 2.0).assertTrue(); 1241 done(); 1242 }); 1243 }); 1244 } catch (e) { 1245 console.error('DeviceKvStorePutBatchEntryCallbackFloatTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1246 expect(null).assertFail(); 1247 done(); 1248 } 1249 }) 1250 1251 /** 1252 * @tc.name DeviceKvStorePutBatchEntryCallbackDoubleTest 1253 * @tc.desc Test Js Api DeviceKvStore.PutBatch() with double value 1254 * @tc.type: FUNC 1255 * @tc.require: issueNumber 1256 */ 1257 it('DeviceKvStorePutBatchEntryCallbackDoubleTest', 0, function (done) { 1258 console.info('DeviceKvStorePutBatchEntryCallbackDoubleTest'); 1259 try { 1260 let entries = []; 1261 for (var i = 0; i < 10; i++) { 1262 var key = 'batch_test_number_key'; 1263 var entry = { 1264 key: key + i, 1265 value: { 1266 type: factory.ValueType.DOUBLE, 1267 value: 2.00 1268 } 1269 } 1270 entries.push(entry); 1271 } 1272 console.info('DeviceKvStorePutBatchEntryCallbackDoubleTest entries: ' + JSON.stringify(entries)); 1273 kvStore.putBatch(entries, function (err, data) { 1274 console.info('DeviceKvStorePutBatchEntryCallbackDoubleTest putBatch success'); 1275 expect(err == undefined).assertTrue(); 1276 kvStore.getEntries(localDeviceId, 'batch_test_number_key', function (err, entrys) { 1277 expect(entrys.length == 10).assertTrue(); 1278 expect(entrys[0].value.value == 2.00).assertTrue(); 1279 done(); 1280 }); 1281 }); 1282 } catch (e) { 1283 console.error('DeviceKvStorePutBatchEntryCallbackDoubleTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1284 expect(null).assertFail(); 1285 done(); 1286 } 1287 }) 1288 1289 /** 1290 * @tc.name DeviceKvStorePutBatchEntryCallbackBooleanTest 1291 * @tc.desc Test Js Api DeviceKvStore.PutBatch() with boolean value 1292 * @tc.type: FUNC 1293 * @tc.require: issueNumber 1294 */ 1295 it('DeviceKvStorePutBatchEntryCallbackBooleanTest', 0, function (done) { 1296 console.info('DeviceKvStorePutBatchEntryCallbackBooleanTest'); 1297 try { 1298 var bo = false; 1299 let entries = []; 1300 for (var i = 0; i < 10; i++) { 1301 var key = 'batch_test_bool_key'; 1302 var entry = { 1303 key: key + i, 1304 value: { 1305 type: factory.ValueType.BOOLEAN, 1306 value: bo 1307 } 1308 } 1309 entries.push(entry); 1310 } 1311 console.info('DeviceKvStorePutBatchEntryCallbackBooleanTest entries: ' + JSON.stringify(entries)); 1312 kvStore.putBatch(entries, function (err, data) { 1313 console.info('DeviceKvStorePutBatchEntryCallbackBooleanTest putBatch success'); 1314 expect(err == undefined).assertTrue(); 1315 kvStore.getEntries(localDeviceId, 'batch_test_bool_key', function (err, entrys) { 1316 expect(entrys.length == 10).assertTrue(); 1317 expect(entrys[0].value.value == bo).assertTrue(); 1318 done(); 1319 }); 1320 }); 1321 } catch (e) { 1322 console.error('DeviceKvStorePutBatchEntryCallbackBooleanTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1323 expect(null).assertFail(); 1324 done(); 1325 } 1326 }) 1327 1328 /** 1329 * @tc.name DeviceKvStorePutBatchEntryCallbackByteArrayTest 1330 * @tc.desc Test Js Api DeviceKvStore.PutBatch() with byte_arrgy value 1331 * @tc.type: FUNC 1332 * @tc.require: issueNumber 1333 */ 1334 it('DeviceKvStorePutBatchEntryCallbackByteArrayTest', 0, function (done) { 1335 console.info('DeviceKvStorePutBatchEntryCallbackByteArrayTest'); 1336 try { 1337 var arr = new Uint8Array([21, 31]); 1338 let entries = []; 1339 for (var i = 0; i < 10; i++) { 1340 var key = 'batch_test_bool_key'; 1341 var entry = { 1342 key: key + i, 1343 value: { 1344 type: factory.ValueType.BYTE_ARRAY, 1345 value: arr 1346 } 1347 } 1348 entries.push(entry); 1349 } 1350 console.info('DeviceKvStorePutBatchEntryCallbackByteArrayTest entries: ' + JSON.stringify(entries)); 1351 kvStore.putBatch(entries, function (err, data) { 1352 console.info('DeviceKvStorePutBatchEntryCallbackByteArrayTest putBatch success'); 1353 expect(err == undefined).assertTrue(); 1354 kvStore.getEntries(localDeviceId, 'batch_test_bool_key', function (err, entrys) { 1355 expect(entrys.length == 10).assertTrue(); 1356 expect(entrys[0].value.value.toString() == arr.toString()).assertTrue(); 1357 done(); 1358 }); 1359 }); 1360 } catch (e) { 1361 console.error('DeviceKvStorePutBatchEntryCallbackByteArrayTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1362 expect(null).assertFail(); 1363 done(); 1364 } 1365 }) 1366 1367 /** 1368 * @tc.name DeviceKvStorePutBatchValueCallbackUint8ArrayTest 1369 * @tc.desc Test Js Api DeviceKvStore.PutBatch() with value unit8array 1370 * @tc.type: FUNC 1371 * @tc.require: issueNumber 1372 */ 1373 it('DeviceKvStorePutBatchValueCallbackUint8ArrayTest', 0, function (done) { 1374 console.info('DeviceKvStorePutBatchValueCallbackUint8ArrayTest'); 1375 try { 1376 let values = []; 1377 let arr1 = new Uint8Array([4, 5, 6, 7]); 1378 let arr2 = new Uint8Array([4, 5, 6, 7, 8]); 1379 let vb1 = {key: "name_1", value: arr1}; 1380 let vb2 = {key: "name_2", value: arr2}; 1381 values.push(vb1); 1382 values.push(vb2); 1383 console.info('DeviceKvStorePutBatchValueCallbackUint8ArrayTest values: ' + JSON.stringify(values)); 1384 kvStore.putBatch(values, function (err, data) { 1385 if (err) { 1386 console.error('DeviceKvStorePutBatchValueCallbackUint8ArrayTest putBatch fail' + `, error code is ${err.code}, message is ${err.message}`); 1387 expect(null).assertFail(); 1388 done(); 1389 } 1390 console.error('DeviceKvStorePutBatchValueCallbackUint8ArrayTest putBatch success'); 1391 expect(null).assertFail(); 1392 done(); 1393 }); 1394 } catch (e) { 1395 console.info('DeviceKvStorePutBatchValueCallbackUint8ArrayTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1396 expect(e.code == 202).assertTrue(); 1397 done(); 1398 } 1399 }) 1400 1401 /** 1402 * @tc.name DeviceKvStorePutBatchCallbackInvalidArgsTest 1403 * @tc.desc Test Js Api DeviceKvStore.PutBatch() put invalid args 1404 * @tc.type: FUNC 1405 * @tc.require: issueNumber 1406 */ 1407 it('DeviceKvStorePutBatchCallbackInvalidArgsTest', 0, function (done) { 1408 try { 1409 kvStore.putBatch(function (err) { 1410 if (err) { 1411 expect(null).assertFail(); 1412 done(); 1413 } 1414 expect(null).assertFail(); 1415 done(); 1416 }); 1417 } catch (e) { 1418 console.info('DeviceKvStorePutBatchCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1419 expect(e.code == 401).assertTrue(); 1420 done(); 1421 } 1422 }) 1423 1424 /** 1425 * @tc.name DeviceKvStorePutBatchCallbackClosedKvstoreTest 1426 * @tc.desc Test Js Api DeviceKvStore.PutBatch() put into closed kvstore 1427 * @tc.type: FUNC 1428 * @tc.require: issueNumber 1429 */ 1430 it('DeviceKvStorePutBatchCallbackClosedKvstoreTest', 0, function (done) { 1431 try { 1432 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 1433 expect(err == undefined).assertTrue(); 1434 try { 1435 let values = []; 1436 let vb1 = { 1437 key: "name_1", value: null 1438 }; 1439 let vb2 = { 1440 key: "name_2", value: null 1441 }; 1442 values.push(vb1); 1443 values.push(vb2); 1444 kvStore.putBatch(values, function (err) { 1445 if (err) { 1446 console.info('DeviceKvStorePutBatchCallbackClosedKvstoreTest putBatch fail' + `, error code is ${err.code}, message is ${err.message}`); 1447 expect(null).assertFail(); 1448 done(); 1449 } 1450 expect(null).assertFail(); 1451 done(); 1452 }); 1453 } catch (e) { 1454 console.info('DeviceKvStorePutBatchCallbackClosedKvstoreTest putBatch fail' + `, error code is ${e.code}, message is ${e.message}`); 1455 expect(e.code == 202).assertTrue(); 1456 done(); 1457 } 1458 }); 1459 } catch (e) { 1460 console.info('DeviceKvStorePutBatchCallbackClosedKvstoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1461 expect(e.code == 401).assertFail(); 1462 done(); 1463 } 1464 }) 1465 1466 /** 1467 * @tc.name DeviceKvStoreDeleteBatchCallbackSucTest 1468 * @tc.desc Test Js Api DeviceKvStore.DeleteBatch() successfully 1469 * @tc.type: FUNC 1470 * @tc.require: issueNumber 1471 */ 1472 it('DeviceKvStoreDeleteBatchCallbackSucTest', 0, function (done) { 1473 console.info('DeviceKvStoreDeleteBatchCallbackSucTest'); 1474 try { 1475 let entries = []; 1476 let keys = []; 1477 for (var i = 0; i < 5; i++) { 1478 var key = 'batch_test_string_key'; 1479 var entry = { 1480 key: key + i, 1481 value: { 1482 type: factory.ValueType.STRING, 1483 value: 'batch_test_string_value' 1484 } 1485 } 1486 entries.push(entry); 1487 keys.push(key + i); 1488 } 1489 console.info('DeviceKvStoreDeleteBatchCallbackSucTest entries: ' + JSON.stringify(entries)); 1490 kvStore.putBatch(entries, function (err, data) { 1491 console.info('DeviceKvStoreDeleteBatchCallbackSucTest putBatch success'); 1492 expect(err == undefined).assertTrue(); 1493 kvStore.deleteBatch(keys, function (err, data) { 1494 console.info('DeviceKvStoreDeleteBatchCallbackSucTest deleteBatch success'); 1495 expect(err == undefined).assertTrue(); 1496 done(); 1497 }); 1498 }); 1499 } catch (e) { 1500 console.error('DeviceKvStoreDeleteBatchCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1501 expect(null).assertFail(); 1502 done(); 1503 } 1504 }) 1505 1506 /** 1507 * @tc.name DeviceKvStoreDeleteBatchCallbackInvalidArgsTest 1508 * @tc.desc Test Js Api DeviceKvStore.DeleteBatch() with invalid args 1509 * @tc.type: FUNC 1510 * @tc.require: issueNumber 1511 */ 1512 it('DeviceKvStoreDeleteBatchCallbackInvalidArgsTest', 0, function (done) { 1513 console.info('DeviceKvStoreDeleteBatchCallbackInvalidArgsTest'); 1514 try { 1515 let entries = []; 1516 let keys = []; 1517 for (var i = 0; i < 5; i++) { 1518 var key = 'batch_test_string_key'; 1519 var entry = { 1520 key: key + i, 1521 value: { 1522 type: factory.ValueType.STRING, 1523 value: 'batch_test_string_value' 1524 } 1525 } 1526 entries.push(entry); 1527 keys.push(key + i); 1528 } 1529 kvStore.putBatch(entries, function (err) { 1530 expect(err == undefined).assertTrue(); 1531 try { 1532 kvStore.deleteBatch(1, function (err) { 1533 expect(null).assertFail(); 1534 done() 1535 }); 1536 } catch (e) { 1537 console.info('DeviceKvStoreDeleteBatchCallbackInvalidArgsTest deleteBatch fail' + `, error code is ${e.code}, message is ${e.message}`); 1538 expect(e.code == 401).assertTrue(); 1539 done(); 1540 } 1541 }); 1542 } catch (e) { 1543 console.info('DeviceKvStoreDeleteBatchCallbackInvalidArgsTest putBatch fail' + `, error code is ${e.code}, message is ${e.message}`); 1544 expect(e.code == 401).assertTrue(); 1545 done(); 1546 } 1547 }) 1548 1549 /** 1550 * @tc.name DeviceKvStoreDeleteBatchCallbackClosedKVStoreTest 1551 * @tc.desc Test Js Api DeviceKvStore.DeleteBatch() with closed kvstore 1552 * @tc.type: FUNC 1553 * @tc.require: issueNumber 1554 */ 1555 it('DeviceKvStoreDeleteBatchCallbackClosedKVStoreTest', 0, function (done) { 1556 console.info('DeviceKvStoreDeleteBatchCallbackClosedKVStoreTest'); 1557 try { 1558 let entries = []; 1559 let keys = []; 1560 for (var i = 0; i < 5; i++) { 1561 var key = 'batch_test_string_key'; 1562 var entry = { 1563 key: key + i, 1564 value: { 1565 type: factory.ValueType.STRING, 1566 value: 'batch_test_string_value' 1567 } 1568 } 1569 entries.push(entry); 1570 keys.push(key + i); 1571 } 1572 kvStore.putBatch(entries, function (err) { 1573 expect(err == undefined).assertTrue(); 1574 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 1575 expect(err == undefined).assertTrue(); 1576 kvStore.deleteBatch(keys, function (err) { 1577 if (err) { 1578 expect(err.code == 15100005).assertTrue(); 1579 done(); 1580 return; 1581 } 1582 expect(null).assertFail(); 1583 done(); 1584 }); 1585 }); 1586 }); 1587 } catch (e) { 1588 console.error('DeviceKvStoreDeleteBatchCallbackClosedKVStoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1589 expect(null).assertFail(); 1590 done(); 1591 } 1592 }) 1593 1594 /** 1595 * @tc.name DeviceKvStoreGetEntriesCallbackQueryTest 1596 * @tc.desc Test Js Api DeviceKvStore.GetEntries() with query 1597 * @tc.type: FUNC 1598 * @tc.require: issueNumber 1599 */ 1600 it('DeviceKvStoreGetEntriesCallbackQueryTest', 0, function (done) { 1601 try { 1602 var arr = new Uint8Array([21, 31]); 1603 let entries = []; 1604 for (var i = 0; i < 10; i++) { 1605 var key = 'batch_test_bool_key'; 1606 var entry = { 1607 key: key + i, 1608 value: { 1609 type: factory.ValueType.BYTE_ARRAY, 1610 value: arr 1611 } 1612 } 1613 entries.push(entry); 1614 } 1615 kvStore.putBatch(entries, function (err) { 1616 expect(err == undefined).assertTrue(); 1617 let query = new factory.Query(); 1618 query.prefixKey("batch_test"); 1619 kvStore.getEntries(localDeviceId, query, function (err, entrys) { 1620 expect(entrys.length == 10).assertTrue(); 1621 expect(entrys[0].value.value.toString() == arr.toString()).assertTrue(); 1622 done(); 1623 }); 1624 }); 1625 } catch (e) { 1626 console.error('DeviceKvStoreGetEntriesCallbackQueryTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1627 expect(null).assertFail(); 1628 done(); 1629 } 1630 }) 1631 1632 /** 1633 * @tc.name DeviceKvStoreGetEntriesCallbackQueryClosedKVStoreTest 1634 * @tc.desc Test Js Api DeviceKvStore.GetEntries() query from a closed kvstore 1635 * @tc.type: FUNC 1636 * @tc.require: issueNumber 1637 */ 1638 it('DeviceKvStoreGetEntriesCallbackQueryClosedKVStoreTest', 0, function (done) { 1639 try { 1640 var arr = new Uint8Array([21, 31]); 1641 let entries = []; 1642 for (let i = 0; i < 10; i++) { 1643 let key = 'batch_test_bool_key'; 1644 let entry = { 1645 key: key + i, 1646 value: { 1647 type: factory.ValueType.BYTE_ARRAY, 1648 value: arr 1649 } 1650 } 1651 entries.push(entry); 1652 } 1653 kvStore.putBatch(entries, function (err) { 1654 expect(err == undefined).assertTrue(); 1655 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 1656 expect(err == undefined).assertTrue(); 1657 let query = new factory.Query(); 1658 query.prefixKey("batch_test"); 1659 kvStore.getEntries(localDeviceId, query, function (err) { 1660 if (err) { 1661 expect(err.code == 15100005).assertTrue(); 1662 done(); 1663 return; 1664 } 1665 expect(null).assertFail(); 1666 done(); 1667 }) 1668 }); 1669 }); 1670 } catch (e) { 1671 console.error('DeviceKvStoreGetEntriesCallbackQueryClosedKVStoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1672 expect(null).assertFail(); 1673 done(); 1674 } 1675 }) 1676 1677 /** 1678 * @tc.name DeviceKvStoreGetEntriesCallbackSucTest 1679 * @tc.desc Test Js Api DeviceKvStore.GetEntries() success 1680 * @tc.type: FUNC 1681 * @tc.require: issueNumber 1682 */ 1683 it('DeviceKvStoreGetEntriesCallbackSucTest', 0, function (done) { 1684 try { 1685 var arr = new Uint8Array([21, 31]); 1686 let entries = []; 1687 for (var i = 0; i < 10; i++) { 1688 var key = 'batch_test_bool_key'; 1689 var entry = { 1690 key: key + i, 1691 value: { 1692 type: factory.ValueType.BYTE_ARRAY, 1693 value: arr 1694 } 1695 } 1696 entries.push(entry); 1697 } 1698 kvStore.putBatch(entries, function (err) { 1699 expect(err == undefined).assertTrue(); 1700 kvStore.getEntries(localDeviceId, "batch_test", function (err, entrys) { 1701 expect(entrys.length == 10).assertTrue(); 1702 expect(entrys[0].value.value.toString() == arr.toString()).assertTrue(); 1703 done(); 1704 }); 1705 }); 1706 } catch (e) { 1707 console.error('DeviceKvStoreGetEntriesCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1708 expect(null).assertFail(); 1709 done(); 1710 } 1711 }) 1712 1713 /** 1714 * @tc.name DeviceKvStoreGetEntriesCallbackClosedKVStoreTest 1715 * @tc.desc Test Js Api DeviceKvStore.GetEntries() from a closed kvstore 1716 * @tc.type: FUNC 1717 * @tc.require: issueNumber 1718 */ 1719 it('DeviceKvStoreGetEntriesCallbackClosedKVStoreTest', 0, function (done) { 1720 try { 1721 var arr = new Uint8Array([21, 31]); 1722 let entries = []; 1723 for (var i = 0; i < 10; i++) { 1724 var key = 'batch_test_bool_key'; 1725 var entry = { 1726 key: key + i, 1727 value: { 1728 type: factory.ValueType.BYTE_ARRAY, 1729 value: arr 1730 } 1731 } 1732 entries.push(entry); 1733 } 1734 kvStore.putBatch(entries, function (err) { 1735 expect(err == undefined).assertTrue(); 1736 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 1737 expect(err == undefined).assertTrue(); 1738 kvStore.getEntries(localDeviceId, "batch_test", function (err) { 1739 if (err) { 1740 expect(err.code == 15100005).assertTrue(); 1741 done(); 1742 return; 1743 } 1744 expect(null).assertFail(); 1745 done(); 1746 }); 1747 }); 1748 }); 1749 } catch (e) { 1750 console.error('DeviceKvStoreGetEntriesCallbackClosedKVStoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1751 expect(null).assertFail(); 1752 done(); 1753 } 1754 }) 1755 1756 /** 1757 * @tc.name DeviceKvStoreGetEntriesCallbackInvalidArgsTest 1758 * @tc.desc Test Js Api DeviceKvStore.GetEntries() with invalid args 1759 * @tc.type: FUNC 1760 * @tc.require: issueNumber 1761 */ 1762 it('DeviceKvStoreGetEntriesCallbackInvalidArgsTest', 0, function (done) { 1763 try { 1764 var arr = new Uint8Array([21, 31]); 1765 let entries = []; 1766 for (var i = 0; i < 10; i++) { 1767 var key = 'batch_test_bool_key'; 1768 var entry = { 1769 key: key + i, 1770 value: { 1771 type: factory.ValueType.BYTE_ARRAY, 1772 value: arr 1773 } 1774 } 1775 entries.push(entry); 1776 } 1777 kvStore.putBatch(entries, function (err) { 1778 expect(err == undefined).assertTrue(); 1779 try { 1780 kvStore.getEntries(function (err, entrys) { 1781 if (err) { 1782 expect(null).assertFail(); 1783 done(); 1784 return; 1785 } 1786 expect(null).assertFail(); 1787 done(); 1788 }); 1789 } catch (e) { 1790 console.info('DeviceKvStoreGetEntriesCallbackInvalidArgsTest getEntries fail' + `, error code is ${e.code}, message is ${e.message}`); 1791 expect(e.code == 401).assertTrue(); 1792 done(); 1793 } 1794 }); 1795 } catch (e) { 1796 console.info('DeviceKvStoreGetEntriesCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1797 expect(null).assertFail(); 1798 done(); 1799 } 1800 }) 1801 1802 1803 /** 1804 * @tc.name DeviceKvstoreStartTransactionCallbackCommitTest 1805 * @tc.desc Test Js Api DeviceKvStore.startTransaction() with commit 1806 * @tc.type: FUNC 1807 * @tc.require: issueNumber 1808 */ 1809 it('DeviceKvstoreStartTransactionCallbackCommitTest', 0, function (done) { 1810 console.info('DeviceKvstoreStartTransactionCallbackCommitTest'); 1811 try { 1812 var count = 0; 1813 kvStore.on('dataChange', 0, function (data) { 1814 console.info('DeviceKvstoreStartTransactionCallbackCommitTest 0' + data) 1815 count++; 1816 }); 1817 kvStore.startTransaction(function (err, data) { 1818 expect(err == undefined).assertTrue(); 1819 let entries = putBatchString(10, 'batch_test_string_key'); 1820 kvStore.putBatch(entries, function (err, data) { 1821 expect(err == undefined).assertTrue(); 1822 let keys = Object.keys(entries).slice(5); 1823 kvStore.deleteBatch(keys, function (err, data) { 1824 expect(err == undefined).assertTrue(); 1825 kvStore.commit(async function (err, data) { 1826 expect(err == undefined).assertTrue(); 1827 await sleep(2000); 1828 expect(count == 1).assertTrue(); 1829 done(); 1830 }); 1831 }); 1832 }); 1833 }); 1834 } catch (e) { 1835 console.error('DeviceKvstoreStartTransactionCallbackCommitTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1836 expect(null).assertFail(); 1837 done(); 1838 } 1839 }) 1840 1841 /** 1842 * @tc.name DeviceKvstoreStartTransactionCallbackRollbackTest 1843 * @tc.desc Test Js Api DeviceKvStore.startTransaction() with rollback 1844 * @tc.type: FUNC 1845 * @tc.require: issueNumber 1846 */ 1847 it('DeviceKvstoreStartTransactionCallbackRollbackTest', 0, function (done) { 1848 try { 1849 var count = 0; 1850 kvStore.on('dataChange', 0, function (data) { 1851 count++; 1852 }); 1853 kvStore.startTransaction(function (err, data) { 1854 expect(err == undefined).assertTrue(); 1855 let entries = putBatchString(10, 'batch_test_string_key'); 1856 kvStore.putBatch(entries, function (err, data) { 1857 expect(err == undefined).assertTrue(); 1858 let keys = Object.keys(entries).slice(5); 1859 kvStore.deleteBatch(keys, function (err, data) { 1860 expect(err == undefined).assertTrue(); 1861 kvStore.rollback(function (err, data) { 1862 expect(err == undefined).assertTrue(); 1863 sleep(2000); 1864 expect(count == 0).assertTrue(); 1865 done(); 1866 }); 1867 }); 1868 }); 1869 }); 1870 } catch (e) { 1871 console.error('DeviceKvstoreStartTransactionCallbackRollbackTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1872 expect(null).assertFail(); 1873 done(); 1874 } 1875 }) 1876 1877 /** 1878 * @tc.name DeviceKvstoreStartTransactionCallbackClosedKVStoreTest 1879 * @tc.desc Test Js Api DeviceKvStore.startTransaction() with closed kvstore 1880 * @tc.type: FUNC 1881 * @tc.require: issueNumber 1882 */ 1883 it('DeviceKvstoreStartTransactionCallbackClosedKVStoreTest', 0, function (done) { 1884 try { 1885 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 1886 expect(err == undefined).assertTrue(); 1887 kvStore.startTransaction(function (err) { 1888 if (err) { 1889 expect(err.code == 15100005).assertTrue(); 1890 done(); 1891 return; 1892 } 1893 expect(null).assertFail(); 1894 done(); 1895 }); 1896 }); 1897 } catch (e) { 1898 console.error('DeviceKvstoreStartTransactionCallbackClosedKVStoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1899 expect(null).assertFail(); 1900 done(); 1901 } 1902 }) 1903 1904 /** 1905 * @tc.name DeviceKvStoreCommitCallbackClosedKVStoreTest 1906 * @tc.desc Test Js Api DeviceKvStore.Commit() with closed kvstore 1907 * @tc.type: FUNC 1908 * @tc.require: issueNumber 1909 */ 1910 it('DeviceKvStoreCommitCallbackClosedKVStoreTest', 0, function (done) { 1911 console.info('DeviceKvStoreCommitCallbackClosedKVStoreTest'); 1912 try { 1913 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 1914 expect(err == undefined).assertTrue(); 1915 kvStore.commit(function (err) { 1916 if (err) { 1917 expect(err.code == 15100005).assertTrue(); 1918 done(); 1919 return; 1920 } 1921 expect(null).assertFail(); 1922 done(); 1923 }); 1924 }); 1925 } catch (e) { 1926 console.error('DeviceKvStoreCommitCallbackClosedKVStoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1927 expect(null).assertFail(); 1928 done(); 1929 } 1930 }) 1931 1932 /** 1933 * @tc.name DeviceKvStoreRollbackCallbackClosedKVStoreTest 1934 * @tc.desc Test Js Api DeviceKvStore.Rollback() with closed kvstore 1935 * @tc.type: FUNC 1936 * @tc.require: issueNumber 1937 */ 1938 it('DeviceKvStoreRollbackCallbackClosedKVStoreTest', 0, function (done) { 1939 console.info('DeviceKvStoreRollbackCallbackClosedKVStoreTest'); 1940 try { 1941 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 1942 expect(err == undefined).assertTrue(); 1943 kvStore.rollback(function (err) { 1944 if (err) { 1945 expect(err.code == 15100005).assertTrue(); 1946 done(); 1947 return; 1948 } 1949 expect(null).assertFail(); 1950 done(); 1951 }); 1952 }); 1953 } catch (e) { 1954 console.error('DeviceKvStoreRollbackCallbackClosedKVStoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1955 expect(null).assertFail(); 1956 done(); 1957 } 1958 }) 1959 1960 /** 1961 * @tc.name DeviceKvStoreEnableSyncCallbackTrueTest 1962 * @tc.desc Test Js Api DeviceKvStore.EnableSync() with mode true 1963 * @tc.type: FUNC 1964 * @tc.require: issueNumber 1965 */ 1966 it('DeviceKvStoreEnableSyncCallbackTrueTest', 0, function (done) { 1967 console.info('DeviceKvStoreEnableSyncCallbackTrueTest'); 1968 try { 1969 kvStore.enableSync(true, function (err, data) { 1970 if (err) { 1971 console.info('DeviceKvStoreEnableSyncCallbackTrueTest enableSync fail'); 1972 expect(null).assertFail(); 1973 done(); 1974 } 1975 console.info('DeviceKvStoreEnableSyncCallbackTrueTest enableSync success'); 1976 expect(err == undefined).assertTrue(); 1977 done(); 1978 }); 1979 } catch (e) { 1980 console.error('DeviceKvStoreEnableSyncCallbackTrueTest fail' + `, error code is ${e.code}, message is ${e.message}`); 1981 expect(null).assertFail(); 1982 done(); 1983 } 1984 }) 1985 1986 /** 1987 * @tc.name DeviceKvStoreEnableSyncCallbackFalseTest 1988 * @tc.desc Test Js Api DeviceKvStore.EnableSync() with mode false 1989 * @tc.type: FUNC 1990 * @tc.require: issueNumber 1991 */ 1992 it('DeviceKvStoreEnableSyncCallbackFalseTest', 0, function (done) { 1993 console.info('DeviceKvStoreEnableSyncCallbackFalseTest'); 1994 try { 1995 kvStore.enableSync(false, function (err, data) { 1996 if (err) { 1997 console.info('DeviceKvStoreEnableSyncCallbackFalseTest enableSync fail'); 1998 expect(null).assertFail(); 1999 done(); 2000 } 2001 console.info('DeviceKvStoreEnableSyncCallbackFalseTest enableSync success'); 2002 expect(err == undefined).assertTrue(); 2003 done(); 2004 }); 2005 } catch (e) { 2006 console.error('DeviceKvStoreEnableSyncCallbackFalseTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2007 expect(null).assertFail(); 2008 done(); 2009 } 2010 }) 2011 2012 /** 2013 * @tc.name DeviceKvStoreEnableSyncCallbackInvalidArgsTest 2014 * @tc.desc Test Js Api DeviceKvStore.EnableSync() with invlid args 2015 * @tc.type: FUNC 2016 * @tc.require: issueNumber 2017 */ 2018 it('DeviceKvStoreEnableSyncCallbackInvalidArgsTest', 0, function (done) { 2019 console.info('DeviceKvStoreEnableSyncCallbackInvalidArgsTest'); 2020 try { 2021 kvStore.enableSync(function (err, data) { 2022 if (err) { 2023 console.info('DeviceKvStoreEnableSyncCallbackInvalidArgsTest enableSync fail'); 2024 expect(null).assertFail(); 2025 done(); 2026 } 2027 console.info('DeviceKvStoreEnableSyncCallbackInvalidArgsTest enableSync success'); 2028 expect(null).assertFail(); 2029 done(); 2030 }); 2031 } catch (e) { 2032 console.error('DeviceKvStoreEnableSyncCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2033 expect(e.code == 401).assertTrue(); 2034 done(); 2035 } 2036 }) 2037 2038 /** 2039 * @tc.name DeviceKvStoreRemoveDeviceDataCallbackClosedKvstoreTest 2040 * @tc.desc Test Js Api DeviceKvStore.RemoveDeviceData() in a closed kvstore 2041 * @tc.type: FUNC 2042 * @tc.require: issueNumber 2043 */ 2044 it('DeviceKvStoreRemoveDeviceDataCallbackClosedKvstoreTest', 0, function (done) { 2045 try { 2046 kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { 2047 expect(err == undefined).assertTrue(); 2048 var deviceid = 'no_exist_device_id'; 2049 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 2050 expect(err == undefined).assertTrue(); 2051 kvStore.removeDeviceData(deviceid, function (err) { 2052 if (err) { 2053 expect(err.code == 15100005).assertTrue(); 2054 done(); 2055 return; 2056 } 2057 expect(null).assertFail(); 2058 done(); 2059 }); 2060 }); 2061 }); 2062 } catch (e) { 2063 console.error('DeviceKvStoreRemoveDeviceDataCallbackClosedKvstoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2064 expect(null).assertFail(); 2065 done(); 2066 } 2067 }) 2068 2069 /** 2070 * @tc.name DeviceKvStoreRemoveDeviceDataCallbackInvalidArgsTest 2071 * @tc.desc Test Js Api DeviceKvStore.RemoveDeviceData() with invalid args 2072 * @tc.type: FUNC 2073 * @tc.require: issueNumber 2074 */ 2075 it('DeviceKvStoreRemoveDeviceDataCallbackInvalidArgsTest', 0, function (done) { 2076 try { 2077 kvStore.removeDeviceData(function (err) { 2078 if (err) { 2079 expect(null).assertFail(); 2080 done(); 2081 } 2082 expect(null).assertFail(); 2083 done(); 2084 }); 2085 } catch (e) { 2086 console.error('DeviceKvStoreRemoveDeviceDataCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2087 expect(e.code == 401).assertTrue(); 2088 done(); 2089 } 2090 }) 2091 2092 /** 2093 * @tc.name DeviceKvStoreGetResultSetCallbackSucTest 2094 * @tc.desc Test Js Api DeviceKvStore.GetResultSet() successfully 2095 * @tc.type: FUNC 2096 * @tc.require: issueNumber 2097 */ 2098 it('DeviceKvStoreGetResultSetCallbackSucTest', 0, function (done) { 2099 console.info('DeviceKvStoreGetResultSetCallbackSucTest'); 2100 try { 2101 let resultSet; 2102 let entries = []; 2103 for (var i = 0; i < 10; i++) { 2104 var key = 'batch_test_string_key'; 2105 var entry = { 2106 key: key + i, 2107 value: { 2108 type: factory.ValueType.STRING, 2109 value: 'batch_test_string_value' 2110 } 2111 } 2112 entries.push(entry); 2113 } 2114 kvStore.putBatch(entries, function (err, data) { 2115 console.info('DeviceKvStoreGetResultSetCallbackSucTest putBatch success'); 2116 expect(err == undefined).assertTrue(); 2117 kvStore.getResultSet(localDeviceId, 'batch_test_string_key', function (err, result) { 2118 console.info('DeviceKvStoreGetResultSetCallbackSucTest getResultSet success'); 2119 resultSet = result; 2120 expect(resultSet.getCount() == 10).assertTrue(); 2121 kvStore.closeResultSet(resultSet, function (err, data) { 2122 console.info('DeviceKvStoreGetResultSetCallbackSucTest closeResultSet success'); 2123 expect(err == undefined).assertTrue(); 2124 done(); 2125 }) 2126 }); 2127 }); 2128 } catch (e) { 2129 console.error('DeviceKvStoreGetResultSetCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2130 expect(null).assertFail(); 2131 done(); 2132 } 2133 }) 2134 2135 /** 2136 * @tc.name DeviceKvStoreGetResultSetCallbackInvalidArgsTest 2137 * @tc.desc Test Js Api DeviceKvStore.GetResultSet() with invalid args 2138 * @tc.type: FUNC 2139 * @tc.require: issueNumber 2140 */ 2141 it('DeviceKvStoreGetResultSetCallbackInvalidArgsTest', 0, function (done) { 2142 console.info('DeviceKvStoreGetResultSetCallbackInvalidArgsTest'); 2143 try { 2144 let resultSet; 2145 kvStore.getResultSet(function () { 2146 console.info('DeviceKvStoreGetResultSetCallbackInvalidArgsTest getResultSet success'); 2147 expect(null).assertFail(); 2148 done(); 2149 }); 2150 } catch (e) { 2151 console.error('DeviceKvStoreGetResultSetCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2152 expect(e.code == 401).assertTrue(); 2153 done(); 2154 } 2155 }) 2156 2157 /** 2158 * @tc.name DeviceKvStoreGetResultSetPredicatesCallbackTest 2159 * @tc.desc Test Js Api DeviceKvStore.GetResultSet() with predicates 2160 * @tc.type: FUNC 2161 * @tc.require: issueNumber 2162 */ 2163 it('DeviceKvStoreGetResultSetPredicatesCallbackTest', 0, function (done) { 2164 console.log('DeviceKvStoreGetResultSetPredicatesCallbackTest'); 2165 try { 2166 let predicates = new dataShare.DataSharePredicates(); 2167 kvStore.getResultSet(localDeviceId, predicates, (err) => { 2168 if (err) { 2169 console.error('DeviceKvStoreGetResultSetPredicatesCallbackTest getResultSet fail' + err`, error code is ${err.code}, message is ${err.message}`); 2170 expect(null).assertFail(); 2171 done(); 2172 return; 2173 } 2174 console.error('DeviceKvStoreGetResultSetPredicatesCallbackTest getResultSet success'); 2175 expect(null).assertFail(); 2176 done(); 2177 }); 2178 } catch (e) { 2179 console.info('DeviceKvStoreGetResultSetPredicatesCallbackTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2180 expect(e.code == 202).assertTrue(); 2181 done(); 2182 } 2183 }) 2184 2185 /** 2186 * @tc.name DeviceKvStoreGetResultSetQueryCallbackTest 2187 * @tc.desc Test Js Api DeviceKvStore.GetResultSet() with query 2188 * @tc.type: FUNC 2189 * @tc.require: issueNumber 2190 */ 2191 it('DeviceKvStoreGetResultSetQueryCallbackTest', 0, function (done) { 2192 try { 2193 let resultSet; 2194 let entries = []; 2195 for (var i = 0; i < 10; i++) { 2196 var key = 'batch_test_string_key'; 2197 var entry = { 2198 key: key + i, 2199 value: { 2200 type: factory.ValueType.STRING, 2201 value: 'batch_test_string_value' 2202 } 2203 } 2204 entries.push(entry); 2205 } 2206 kvStore.putBatch(entries, function (err, data) { 2207 expect(err == undefined).assertTrue(); 2208 let query = new factory.Query(); 2209 query.prefixKey("batch_test"); 2210 kvStore.getResultSet(localDeviceId, query, function (err, result) { 2211 resultSet = result; 2212 expect(resultSet.getCount() == 10).assertTrue(); 2213 kvStore.closeResultSet(resultSet, function (err, data) { 2214 expect(err == undefined).assertTrue(); 2215 done(); 2216 }) 2217 }); 2218 }); 2219 } catch (e) { 2220 console.error('DeviceKvStoreGetResultSetQueryCallbackTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2221 expect(null).assertFail(); 2222 done(); 2223 } 2224 }) 2225 2226 /** 2227 * @tc.name DeviceKvStoreCloseResultSetCallbackSucTest 2228 * @tc.desc Test Js Api DeviceKvStore.CloseResultSet() successfully 2229 * @tc.type: FUNC 2230 * @tc.require: issueNumber 2231 */ 2232 it('DeviceKvStoreCloseResultSetCallbackSucTest', 0, function (done) { 2233 console.info('DeviceKvStoreCloseResultSetCallbackSucTest'); 2234 try { 2235 let resultSet = null; 2236 kvStore.getResultSet(localDeviceId, 'batch_test_string_key', function (err, result) { 2237 console.info('DeviceKvStoreCloseResultSetCallbackSucTest getResultSet success'); 2238 resultSet = result; 2239 kvStore.closeResultSet(resultSet, function (err, data) { 2240 if (err) { 2241 console.info('DeviceKvStoreCloseResultSetCallbackSucTest closeResultSet fail'); 2242 expect(null).assertFail(); 2243 done(); 2244 return; 2245 } 2246 console.info('DeviceKvStoreCloseResultSetCallbackSucTest closeResultSet success'); 2247 expect(err == undefined).assertTrue(); 2248 done(); 2249 }); 2250 }); 2251 } catch (e) { 2252 console.error('DeviceKvStoreCloseResultSetCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2253 expect(null).assertFail(); 2254 done(); 2255 } 2256 }) 2257 2258 /** 2259 * @tc.name DeviceKvStoreCloseResultSetCallbackInvalidArgsTest 2260 * @tc.desc Test Js Api DeviceKvStore.CloseResultSet() with invalid args 2261 * @tc.type: FUNC 2262 * @tc.require: issueNumber 2263 */ 2264 it('DeviceKvStoreCloseResultSetCallbackInvalidArgsTest', 0, function (done) { 2265 console.info('DeviceKvStoreCloseResultSetCallbackInvalidArgsTest'); 2266 try { 2267 console.info('DeviceKvStoreCloseResultSetCallbackInvalidArgsTest success'); 2268 kvStore.closeResultSet(function (err, data) { 2269 if (err) { 2270 console.info('DeviceKvStoreCloseResultSetCallbackInvalidArgsTest closeResultSet fail'); 2271 expect(null).assertFail(); 2272 done(); 2273 return; 2274 } 2275 console.info('DeviceKvStoreCloseResultSetCallbackInvalidArgsTest closeResultSet success'); 2276 expect(null).assertFail(); 2277 done(); 2278 }); 2279 } catch (e) { 2280 console.info('DeviceKvStoreCloseResultSetCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2281 expect(e.code == 401).assertTrue(); 2282 done(); 2283 } 2284 }) 2285 2286 /** 2287 * @tc.name DeviceKvStoreGetResultSizeCallbackQueryTest 2288 * @tc.desc Test Js Api DeviceKvStoreGetResultSize with query 2289 * @tc.type: FUNC 2290 * @tc.require: issueNumber 2291 */ 2292 it('DeviceKvStoreGetResultSizeCallbackQueryTest', 0, function (done) { 2293 try { 2294 let entries = []; 2295 for (var i = 0; i < 10; i++) { 2296 var key = 'batch_test_string_key'; 2297 var entry = { 2298 key: key + i, 2299 value: { 2300 type: factory.ValueType.STRING, 2301 value: 'batch_test_string_value' 2302 } 2303 } 2304 entries.push(entry); 2305 } 2306 kvStore.putBatch(entries, function (err) { 2307 expect(err == undefined).assertTrue(); 2308 var query = new factory.Query(); 2309 query.prefixKey("batch_test"); 2310 kvStore.getResultSize(localDeviceId, query, function (err, resultSize) { 2311 expect(err == undefined).assertTrue(); 2312 expect(resultSize == 10).assertTrue(); 2313 done(); 2314 }); 2315 }); 2316 } catch (e) { 2317 console.error('DeviceKvStoreGetResultSizePromiseQueryTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2318 expect(null).assertFail(); 2319 done(); 2320 } 2321 }) 2322 2323 /** 2324 * @tc.name DeviceKvStoreGetResultSizeCallbackInvalidArgsTest 2325 * @tc.desc Test Js Api DeviceKvStoreGetResultSize with invalid args 2326 * @tc.type: FUNC 2327 * @tc.require: issueNumber 2328 */ 2329 it('DeviceKvStoreGetResultSizeCallbackInvalidArgsTest', 0, function (done) { 2330 try { 2331 let entries = []; 2332 for (var i = 0; i < 10; i++) { 2333 var key = 'batch_test_string_key'; 2334 var entry = { 2335 key: key + i, 2336 value: { 2337 type: factory.ValueType.STRING, 2338 value: 'batch_test_string_value' 2339 } 2340 } 2341 entries.push(entry); 2342 } 2343 kvStore.putBatch(entries, function (err) { 2344 expect(err == undefined).assertTrue(); 2345 try { 2346 kvStore.getResultSize(function (err) { 2347 expect(null).assertFail(); 2348 done(); 2349 }); 2350 } catch (e) { 2351 console.info('DeviceKvStoreGetResultSizeCallbackInvalidArgsTest getResultSize fail' + `, error code is ${e.code}, message is ${e.message}`); 2352 expect(e.code == 401).assertTrue(); 2353 done(); 2354 } 2355 }); 2356 } catch (e) { 2357 console.info('DeviceKvStoreGetResultSizeCallbackInvalidArgsTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2358 expect(e.code == 401).assertTrue(); 2359 done(); 2360 } 2361 }) 2362 2363 /** 2364 * @tc.name DeviceKvStoreGetResultSizeCallbackClosedKVStoreTest 2365 * @tc.desc Test Js Api DeviceKvStoreGetResultSize from a closed kvstore 2366 * @tc.type: FUNC 2367 * @tc.require: issueNumber 2368 */ 2369 it('DeviceKvStoreGetResultSizeCallbackClosedKVStoreTest', 0, function (done) { 2370 try { 2371 let entries = []; 2372 for (var i = 0; i < 10; i++) { 2373 var key = 'batch_test_string_key'; 2374 var entry = { 2375 key: key + i, 2376 value: { 2377 type: factory.ValueType.STRING, 2378 value: 'batch_test_string_value' 2379 } 2380 } 2381 entries.push(entry); 2382 } 2383 kvStore.putBatch(entries, function (err) { 2384 expect(err == undefined).assertTrue(); 2385 kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, function (err) { 2386 expect(err == undefined).assertTrue(); 2387 var query = new factory.Query(); 2388 query.prefixKey("batch_test"); 2389 kvStore.getResultSize(localDeviceId, query, function (err) { 2390 if (err) { 2391 expect(err.code == 15100005).assertTrue(); 2392 done(); 2393 return; 2394 } 2395 expect(null).assertFail(); 2396 done(); 2397 }); 2398 }); 2399 }); 2400 } catch (e) { 2401 console.error('DeviceKvStoreGetResultSizeCallbackClosedKVStoreTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2402 expect(null).assertFail(); 2403 done(); 2404 } 2405 }) 2406 2407 /** 2408 * @tc.name DeviceKvStoreGetEntriesCallbackSucTest 2409 * @tc.desc Test Js Api DeviceKvStore.GetEntries() successfully 2410 * @tc.type: FUNC 2411 * @tc.require: issueNumber 2412 */ 2413 it('DeviceKvStoreGetEntriesCallbackSucTest', 0, function (done) { 2414 console.info('DeviceKvStoreGetEntriesCallbackSucTest'); 2415 try { 2416 var arr = new Uint8Array([21, 31]); 2417 let entries = []; 2418 for (var i = 0; i < 10; i++) { 2419 var key = 'batch_test_bool_key'; 2420 var entry = { 2421 key: key + i, 2422 value: { 2423 type: factory.ValueType.BYTE_ARRAY, 2424 value: arr 2425 } 2426 } 2427 entries.push(entry); 2428 } 2429 console.info('DeviceKvStoreGetEntriesCallbackSucTest entries: ' + JSON.stringify(entries)); 2430 kvStore.putBatch(entries, function (err, data) { 2431 console.info('DeviceKvStoreGetEntriesCallbackSucTest putBatch success'); 2432 expect(err == undefined).assertTrue(); 2433 var query = new factory.Query(); 2434 query.prefixKey("batch_test"); 2435 kvStore.getEntries(localDeviceId, query, function (err, entrys) { 2436 expect(entrys.length == 10).assertTrue(); 2437 expect(entrys[0].value.value.toString() == arr.toString()).assertTrue(); 2438 done(); 2439 }); 2440 }); 2441 } catch (e) { 2442 console.error('DeviceKvStoreGetEntriesCallbackSucTest fail' + `, error code is ${e.code}, message is ${e.message}`); 2443 expect(null).assertFail(); 2444 done(); 2445 } 2446 }) 2447}) 2448