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 */
15import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
16import factory from '@ohos.data.distributedData';
17import abilityFeatureAbility from '@ohos.ability.featureAbility';
18
19var context = abilityFeatureAbility.getContext();
20const TEST_BUNDLE_NAME = 'com.example.myapplication';
21const TEST_STORE_ID = 'storeId';
22var kvManager = null;
23var kvStore = null;
24var resultSet = null;
25
26describe('kvStoreResultSetTest', function() {
27    const config = {
28        bundleName : TEST_BUNDLE_NAME,
29        userInfo : {
30            userId : '0',
31            userType : factory.UserType.SAME_USER_ID
32        },
33        context:context
34    }
35
36    const options = {
37        createIfMissing : true,
38        encrypt : false,
39        backup : false,
40        autoSync : true,
41        kvStoreType : factory.KVStoreType.SINGLE_VERSION,
42        schema : '',
43        securityLevel : factory.SecurityLevel.S2,
44    }
45
46    beforeAll(async function (done) {
47        console.info('beforeAll');
48        console.info('beforeAll config:' + JSON.stringify(config));
49        await factory.createKVManager(config).then((manager) => {
50            kvManager = manager;
51            console.info('beforeAll createKVManager success');
52        }).catch((err) => {
53            console.error('beforeAll createKVManager err ' + `, error code is ${err.code}, message is ${err.message}`);
54        });
55        await kvManager.getAllKVStoreId(TEST_BUNDLE_NAME).then(async (data) => {
56            console.info('beforeAll getAllKVStoreId size = ' + data.length);
57            for (var i = 0; i < data.length; i++) {
58                await kvManager.deleteKVStore(TEST_BUNDLE_NAME, data[i]).then(() => {
59                    console.info('beforeAll deleteKVStore success ' + data[i]);
60                }).catch((err) => {
61                    console.info('beforeAll deleteKVStore store: ' + data[i]);
62                    console.error('beforeAll deleteKVStore error ' + `, error code is ${err.code}, message is ${err.message}`);
63                });
64            }
65        }).catch((err) => {
66            console.error('beforeAll getAllKVStoreId err ' + `, error code is ${err.code}, message is ${err.message}`);
67        });
68
69        console.info('beforeAll end');
70        done();
71    })
72
73    afterAll(async function (done) {
74        console.info('afterAll');
75        kvManager = null;
76        kvStore = null;
77        done();
78    })
79
80    beforeEach(async function (done) {
81        console.info('beforeEach');
82        await kvManager.getKVStore(TEST_STORE_ID, options).then((store) => {
83            kvStore = store;
84            console.info('beforeEach getKVStore success');
85        }).catch((err) => {
86            console.error('beforeEach getKVStore err ' + `, error code is ${err.code}, message is ${err.message}`);
87        });
88        let entries = [];
89        for (var i = 0; i < 10; i++) {
90            var key = 'batch_test_string_key';
91            var entry = {
92                key : key + i,
93                value : {
94                    type : factory.ValueType.STRING,
95                    value : 'batch_test_string_value'
96                }
97            }
98            entries.push(entry);
99        }
100        await kvStore.putBatch(entries).then(async (err) => {
101            console.info('beforeEach putBatch success');
102        }).catch((err) => {
103            console.error('beforeEach putBatch fail ' + `, error code is ${err.code}, message is ${err.message}`);
104        });
105        await kvStore.getResultSet('batch_test_string_key').then((result) => {
106            console.info('beforeEach getResultSet success');
107            resultSet = result;
108        }).catch((err) => {
109            console.error('beforeEach getResultSet fail ' + `, error code is ${err.code}, message is ${err.message}`);
110        });
111        console.info('beforeEach end');
112        done();
113    })
114
115    afterEach(async function (done) {
116        console.info('afterEach');
117        await kvStore.closeResultSet(resultSet).then((err) => {
118            console.info('afterEach closeResultSet success');
119        }).catch((err) => {
120            console.error('afterEach closeResultSet fail ' + `, error code is ${err.code}, message is ${err.message}`);
121        });
122        await kvManager.closeKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID, kvStore).then(async () => {
123            console.info('afterEach closeKVStore success');
124            await kvManager.deleteKVStore(TEST_BUNDLE_NAME, TEST_STORE_ID).then(() => {
125                console.info('afterEach deleteKVStore success');
126            }).catch((err) => {
127                console.error('afterEach deleteKVStore err ' + `, error code is ${err.code}, message is ${err.message}`);
128            });
129        }).catch((err) => {
130            console.error('afterEach closeKVStore err ' + `, error code is ${err.code}, message is ${err.message}`);
131        });
132        kvStore = null;
133        resultSet = null;
134        done();
135    })
136
137    /**
138     * @tc.name KvStoreResultSetGetCountTest001
139     * @tc.desc Test Js Api KvStoreResultSet.GetCount() testcase 001
140     * @tc.type: FUNC
141     * @tc.require: issueNumber
142     */
143    it('KvStoreResultSetGetCountTest001', 0, async function(done) {
144        try {
145            var count = resultSet.getCount();
146            console.info("KvStoreResultSetGetCountTest001 getCount " + count);
147            expect(count == 10).assertTrue();
148        } catch (e) {
149            console.error("KvStoreResultSetGetCountTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
150            expect(null).assertFail();
151        }
152        done();
153    })
154
155    /**
156     * @tc.name KvStoreResultSetGetCountTest002
157     * @tc.desc Test Js Api KvStoreResultSet.GetCount() testcase 002
158     * @tc.type: FUNC
159     * @tc.require: issueNumber
160     */
161    it('KvStoreResultSetGetCountTest002', 0, async function(done) {
162        try {
163            var rs;
164            await kvStore.getResultSet('test').then((result) => {
165                console.info('KvStoreResultSetGetCountTest002 getResultSet success');
166                rs = result;
167                expect(rs.getCount() == 0).assertTrue();
168            }).catch((err) => {
169                console.error('KvStoreResultSetGetCountTest002 getResultSet fail ' + `, error code is ${err.code}, message is ${err.message}`);
170                expect(null).assertFail();
171            });
172            await kvStore.closeResultSet(rs).then((err) => {
173                console.info('KvStoreResultSetGetCountTest002 closeResultSet success');
174            }).catch((err) => {
175                console.error('KvStoreResultSetGetCountTest002 closeResultSet fail ' + `, error code is ${err.code}, message is ${err.message}`);
176                expect(null).assertFail();
177            });
178        } catch (e) {
179            console.error('KvStoreResultSetGetCountTest002 e ' + `, error code is ${e.code}, message is ${e.message}`);
180            expect(null).assertFail();
181        }
182        done();
183    })
184
185    /**
186     * @tc.name KvStoreResultSetGetCountTest003
187     * @tc.desc Test Js Api KvStoreResultSet.GetCount() testcase 003
188     * @tc.type: FUNC
189     * @tc.require: issueNumber
190     */
191    it('KvStoreResultSetGetCountTest003', 0, async function(done) {
192        try {
193            var count = resultSet.getCount(123);
194            console.info("KvStoreResultSetGetCountTest003 getCount " + count);
195            expect(null).assertFail();
196        } catch (e) {
197            console.error("KvStoreResultSetGetCountTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
198        }
199        done();
200    })
201
202    /**
203     * @tc.name KvStoreResultSetGetCountTest004
204     * @tc.desc Test Js Api KvStoreResultSet.GetCount() testcase 004
205     * @tc.type: FUNC
206     * @tc.require: issueNumber
207     */
208    it('KvStoreResultSetGetCountTest004', 0, async function(done) {
209        try {
210            var count = resultSet.getCount(123, 'test_string');
211            console.info("KvStoreResultSetGetCountTest004 getCount " + count);
212            expect(null).assertFail();
213        } catch (e) {
214            console.error("KvStoreResultSetGetCountTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
215        }
216        done();
217    })
218
219    /**
220     * @tc.name KvStoreResultSetGetPositionTest001
221     * @tc.desc Test Js Api KvStoreResultSet.GetPosition() testcase 001
222     * @tc.type: FUNC
223     * @tc.require: issueNumber
224     */
225    it('KvStoreResultSetGetPositionTest001', 0, async function(done) {
226        try {
227            var position = resultSet.getPosition();
228            console.info("KvStoreResultSetGetPositionTest001 getPosition " + position);
229            expect(position == -1).assertTrue();
230        } catch (e) {
231            console.error("KvStoreResultSetGetPositionTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
232            expect(null).assertFail();
233        }
234        done();
235    })
236
237    /**
238     * @tc.name KvStoreResultSetGetPositionTest002
239     * @tc.desc Test Js Api KvStoreResultSet.GetPosition() testcase 002
240     * @tc.type: FUNC
241     * @tc.require: issueNumber
242     */
243    it('KvStoreResultSetGetPositionTest002', 0, async function(done) {
244        try {
245            var position = resultSet.getPosition();
246            console.info("KvStoreResultSetGetPositionTest002 getPosition " + position);
247            expect(position).assertEqual(-1);
248            var flag = resultSet.moveToLast();
249            expect(flag).assertTrue();
250            position = resultSet.getPosition();
251            expect(position).assertEqual(9);
252        } catch (e) {
253            console.error("KvStoreResultSetGetPositionTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
254            expect(null).assertFail();
255        }
256        done();
257    })
258
259    /**
260     * @tc.name KvStoreResultSetGetPositionTest003
261     * @tc.desc Test Js Api KvStoreResultSet.GetPosition() testcase 003
262     * @tc.type: FUNC
263     * @tc.require: issueNumber
264     */
265    it('KvStoreResultSetGetPositionTest003', 0, async function(done) {
266        try {
267            var position = resultSet.getPosition(123);
268            console.info("KvStoreResultSetGetPositionTest003 getPosition " + position);
269            expect(null).assertFail();
270        } catch (e) {
271            console.error("KvStoreResultSetGetPositionTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
272        }
273        done();
274    })
275
276    /**
277     * @tc.name KvStoreResultSetGetPositionTest004
278     * @tc.desc Test Js Api KvStoreResultSet.GetPosition() testcase 004
279     * @tc.type: FUNC
280     * @tc.require: issueNumber
281     */
282    it('KvStoreResultSetGetPositionTest004', 0, async function(done) {
283        try {
284            var position = resultSet.getPosition(123, 'test_string');
285            console.info("KvStoreResultSetGetPositionTest004 getPosition " + position);
286            expect(null).assertFail();
287        } catch (e) {
288            console.error("KvStoreResultSetGetPositionTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
289        }
290        done();
291    })
292
293    /**
294     * @tc.name KvStoreResultSetMoveToFirstTest001
295     * @tc.desc Test Js Api KvStoreResultSet.MoveToFirst() testcase 001
296     * @tc.type: FUNC
297     * @tc.require: issueNumber
298     */
299    it('KvStoreResultSetMoveToFirstTest001', 0, async function(done) {
300        try {
301            var moved = resultSet.moveToFirst();
302            console.info("KvStoreResultSetMoveToFirstTest001 moveToFirst " + moved);
303            expect(moved).assertTrue();
304        } catch (e) {
305            expect(null).assertFail();
306            console.error("KvStoreResultSetMoveToFirstTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
307        }
308        done();
309    })
310
311    /**
312     * @tc.name KvStoreResultSetMoveToFirstTest002
313     * @tc.desc Test Js Api KvStoreResultSet.MoveToFirst() testcase 002
314     * @tc.type: FUNC
315     * @tc.require: issueNumber
316     */
317    it('KvStoreResultSetMoveToFirstTest002', 0, async function(done) {
318        try {
319            var moved = resultSet.moveToFirst();
320            console.info("KvStoreResultSetMoveToFirstTest002 moveToFirst " + moved);
321            expect(moved).assertTrue();
322            var pos = resultSet.getPosition();
323            console.info("KvStoreResultSetMoveToFirstTest002 getPosition " + pos);
324            expect(pos == 0).assertTrue();
325        } catch (e) {
326            expect(null).assertFail();
327            console.error("KvStoreResultSetMoveToFirstTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
328        }
329        done();
330    })
331
332    /**
333     * @tc.name KvStoreResultSetMoveToFirstTest003
334     * @tc.desc Test Js Api KvStoreResultSet.MoveToFirst() testcase 003
335     * @tc.type: FUNC
336     * @tc.require: issueNumber
337     */
338    it('KvStoreResultSetMoveToFirstTest003', 0, async function(done) {
339        try {
340            var moved = resultSet.moveToFirst(123);
341            console.info("KvStoreResultSetMoveToFirstTest003 moveToFirst " + moved);
342            expect(null).assertFail();
343        } catch (e) {
344            console.error("KvStoreResultSetMoveToFirstTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
345        }
346        done();
347    })
348
349    /**
350     * @tc.name KvStoreResultSetMoveToFirstTest004
351     * @tc.desc Test Js Api KvStoreResultSet.MoveToFirst() testcase 004
352     * @tc.type: FUNC
353     * @tc.require: issueNumber
354     */
355    it('KvStoreResultSetMoveToFirstTest004', 0, async function(done) {
356        try {
357            var moved = resultSet.moveToFirst(123, 'test_string');
358            console.info("KvStoreResultSetMoveToFirstTest004 moveToFirst " + moved);
359            expect(null).assertFail();
360        } catch (e) {
361            console.error("KvStoreResultSetMoveToFirstTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
362        }
363        done();
364    })
365
366    /**
367     * @tc.name KvStoreResultSetMoveToFirstTest005
368     * @tc.desc Test Js Api KvStoreResultSet.MoveToFirst() testcase 005
369     * @tc.type: FUNC
370     * @tc.require: issueNumber
371     */
372    it('KvStoreResultSetMoveToFirstTest005', 0, async function(done) {
373        try {
374            var moved = resultSet.moveToLast();
375            console.info("KvStoreResultSetMoveToFirstTest004 moveToFirst " + moved);
376            expect(moved && (resultSet.getPosition() == 9)).assertTrue();
377            moved = resultSet.moveToFirst();
378            expect(moved && (resultSet.getPosition() == 0)).assertTrue();
379        } catch (e) {
380            console.error("KvStoreResultSetMoveToFirstTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
381        }
382        done();
383    })
384
385    /**
386     * @tc.name KvStoreResultSetMoveToLastTest001
387     * @tc.desc Test Js Api KvStoreResultSet.MoveToLast() testcase 001
388     * @tc.type: FUNC
389     * @tc.require: issueNumber
390     */
391    it('KvStoreResultSetMoveToLastTest001', 0, async function(done) {
392        try {
393            var moved = resultSet.moveToLast();
394            console.info("KvStoreResultSetMoveToLastTest001 moveToLast " + moved);
395            expect(moved).assertTrue();
396        } catch (e) {
397            expect(null).assertFail();
398            console.error("KvStoreResultSetMoveToLastTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
399        }
400        done();
401    })
402
403    /**
404     * @tc.name KvStoreResultSetMoveToLastTest002
405     * @tc.desc Test Js Api KvStoreResultSet.MoveToLast() testcase 002
406     * @tc.type: FUNC
407     * @tc.require: issueNumber
408     */
409    it('KvStoreResultSetMoveToLastTest002', 0, async function(done) {
410        try {
411            var moved = resultSet.moveToLast();
412            console.info("KvStoreResultSetMoveToLastTest002 moveToLast " + moved);
413            expect(moved && (resultSet.getPosition() == 9)).assertTrue();
414        } catch (e) {
415            expect(null).assertFail();
416            console.error("KvStoreResultSetMoveToLastTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
417        }
418        done();
419    })
420
421    /**
422     * @tc.name KvStoreResultSetMoveToLastTest003
423     * @tc.desc Test Js Api KvStoreResultSet.MoveToLast() testcase 003
424     * @tc.type: FUNC
425     * @tc.require: issueNumber
426     */
427    it('KvStoreResultSetMoveToLastTest003', 0, async function(done) {
428        try {
429            var moved = resultSet.moveToLast(123);
430            console.info("KvStoreResultSetMoveToLastTest003 moveToLast " + moved);
431            expect(null).assertFail();
432        } catch (e) {
433            console.error("KvStoreResultSetMoveToLastTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
434        }
435        done();
436    })
437
438    /**
439     * @tc.name KvStoreResultSetMoveToLastTest004
440     * @tc.desc Test Js Api KvStoreResultSet.MoveToLast() testcase 004
441     * @tc.type: FUNC
442     * @tc.require: issueNumber
443     */
444    it('KvStoreResultSetMoveToLastTest004', 0, async function(done) {
445        try {
446            var moved = resultSet.moveToLast(123, 'test_string');
447            console.info("KvStoreResultSetMoveToLastTest004 moveToLast " + moved);
448            expect(null).assertFail();
449        } catch (e) {
450            console.error("KvStoreResultSetMoveToLastTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
451        }
452        done();
453    })
454
455    /**
456     * @tc.name KvStoreResultSetMoveToNextTest001
457     * @tc.desc Test Js Api KvStoreResultSet.MoveToNext() testcase 001
458     * @tc.type: FUNC
459     * @tc.require: issueNumber
460     */
461    it('KvStoreResultSetMoveToNextTest001', 0, async function(done) {
462        try {
463            var moved = resultSet.moveToNext();
464            console.info("KvStoreResultSetMoveToNextTest001 moveToNext " + moved);
465            expect(moved && (resultSet.getPosition() == 0)).assertTrue();
466        } catch (e) {
467            expect(null).assertFail();
468            console.error("KvStoreResultSetMoveToNextTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
469        }
470        done();
471    })
472
473    /**
474     * @tc.name KvStoreResultSetMoveToNextTest002
475     * @tc.desc Test Js Api KvStoreResultSet.MoveToNext() testcase 002
476     * @tc.type: FUNC
477     * @tc.require: issueNumber
478     */
479    it('KvStoreResultSetMoveToNextTest002', 0, async function(done) {
480        try {
481            var moved = resultSet.moveToNext();
482            console.info("KvStoreResultSetMoveToNextTest002 moveToNext " + moved);
483            expect(moved && (resultSet.getPosition() == 0)).assertTrue();
484            moved = resultSet.moveToNext();
485            expect(moved && (resultSet.getPosition() == 1)).assertTrue();
486        } catch (e) {
487            expect(null).assertFail();
488            console.error("KvStoreResultSetMoveToNextTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
489        }
490        done();
491    })
492
493    /**
494     * @tc.name KvStoreResultSetMoveToNextTest003
495     * @tc.desc Test Js Api KvStoreResultSet.MoveToNext() testcase 003
496     * @tc.type: FUNC
497     * @tc.require: issueNumber
498     */
499    it('KvStoreResultSetMoveToNextTest003', 0, async function(done) {
500        try {
501            var moved = resultSet.moveToNext(123);
502            console.info("KvStoreResultSetMoveToNextTest003 moveToNext " + moved);
503            expect(null).assertFail();
504        } catch (e) {
505            console.error("KvStoreResultSetMoveToNextTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
506        }
507        done();
508    })
509
510    /**
511     * @tc.name KvStoreResultSetMoveToNextTest004
512     * @tc.desc Test Js Api KvStoreResultSet.MoveToNext() testcase 004
513     * @tc.type: FUNC
514     * @tc.require: issueNumber
515     */
516    it('KvStoreResultSetMoveToNextTest004', 0, async function(done) {
517        try {
518            var moved = resultSet.moveToNext(123, 'test_string');
519            console.info("KvStoreResultSetMoveToNextTest004 moveToNext " + moved);
520            expect(null).assertFail();
521        } catch (e) {
522            console.error("KvStoreResultSetMoveToNextTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
523        }
524        done();
525    })
526
527    /**
528     * @tc.name KvStoreResultSetMoveToPreviousTest001
529     * @tc.desc Test Js Api KvStoreResultSet.MoveToPrevious() testcase 001
530     * @tc.type: FUNC
531     * @tc.require: issueNumber
532     */
533    it('KvStoreResultSetMoveToPreviousTest001', 0, async function(done) {
534        try {
535            var moved = resultSet.moveToPrevious();
536            console.info("KvStoreResultSetMoveToPreviousTest001 moveToPrevious " + moved);
537            expect(!moved).assertTrue();
538        } catch (e) {
539            expect(null).assertFail();
540            console.error("KvStoreResultSetMoveToPreviousTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
541        }
542        done();
543    })
544
545    /**
546     * @tc.name KvStoreResultSetMoveToPreviousTest002
547     * @tc.desc Test Js Api KvStoreResultSet.MoveToPrevious() testcase 002
548     * @tc.type: FUNC
549     * @tc.require: issueNumber
550     */
551    it('KvStoreResultSetMoveToPreviousTest002', 0, async function(done) {
552        try {
553            var moved = resultSet.moveToFirst();
554            expect(moved && (resultSet.getPosition() == 0)).assertTrue();
555            moved = resultSet.moveToNext();
556            console.info("KvStoreResultSetMoveToPreviousTest002 moveToNext " + moved);
557            expect(moved && (resultSet.getPosition() == 1)).assertTrue();
558            moved = resultSet.moveToPrevious();
559            console.info("KvStoreResultSetMoveToPreviousTest002 moveToPrevious " + moved);
560            expect(moved && (resultSet.getPosition() == 0)).assertTrue();
561        } catch (e) {
562            console.error("KvStoreResultSetMoveToPreviousTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
563            expect(null).assertFail();
564        }
565        done();
566    })
567
568    /**
569     * @tc.name KvStoreResultSetMoveToPreviousTest003
570     * @tc.desc Test Js Api KvStoreResultSet.MoveToPrevious() testcase 003
571     * @tc.type: FUNC
572     * @tc.require: issueNumber
573     */
574    it('KvStoreResultSetMoveToPreviousTest003', 0, async function(done) {
575        try {
576            var moved = resultSet.moveToPrevious(123);
577            console.info("KvStoreResultSetMoveToPreviousTest003 moveToPrevious " + moved);
578            expect(null).assertFail();
579        } catch (e) {
580            console.error("KvStoreResultSetMoveToPreviousTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
581        }
582        done();
583    })
584
585    /**
586     * @tc.name KvStoreResultSetMoveToPreviousTest004
587     * @tc.desc Test Js Api KvStoreResultSet.MoveToPrevious() testcase 004
588     * @tc.type: FUNC
589     * @tc.require: issueNumber
590     */
591    it('KvStoreResultSetMoveToPreviousTest004', 0, async function(done) {
592        try {
593            var moved = resultSet.moveToPrevious(123, 'test_string');
594            console.info("KvStoreResultSetMoveToPreviousTest004 moveToPrevious " + moved);
595            expect(null).assertFail();
596        } catch (e) {
597            console.error("KvStoreResultSetMoveToPreviousTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
598        }
599        done();
600    })
601
602    /**
603     * @tc.name KvStoreResultSetMoveToPreviousTest005
604     * @tc.desc Test Js Api KvStoreResultSet.MoveToPrevious() testcase 005
605     * @tc.type: FUNC
606     * @tc.require: issueNumber
607     */
608    it('KvStoreResultSetMoveToPreviousTest005', 0, async function(done) {
609        try {
610            var moved = resultSet.moveToFirst();
611            expect(moved && (resultSet.getPosition() == 0)).assertTrue();
612            moved = resultSet.moveToPrevious();
613            console.info("KvStoreResultSetMoveToPreviousTest005 from 0 to -1 return" + moved);
614            expect(moved == false).assertTrue();
615            console.info("KvStoreResultSetMoveToPreviousTest005 from 0 to " + resultSet.getPosition());
616            expect(-1).assertEqual(resultSet.getPosition());
617        } catch (e) {
618            console.error("KvStoreResultSetMoveToPreviousTest005 fail " + `, error code is ${e.code}, message is ${e.message}`);
619            expect(null).assertFail();
620        }
621        done();
622    })
623
624    /**
625     * @tc.name KvStoreResultSetMoveTest001
626     * @tc.desc Test Js Api KvStoreResultSet.Move() testcase 001
627     * @tc.type: FUNC
628     * @tc.require: issueNumber
629     */
630    it('KvStoreResultSetMoveTest001', 0, async function(done) {
631        try {
632            var moved = resultSet.move();
633            console.info("KvStoreResultSetMoveTest001 move " + moved);
634            expect(null).assertFail();
635        } catch (e) {
636            console.error("KvStoreResultSetMoveTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
637        }
638        done();
639    })
640
641    /**
642     * @tc.name KvStoreResultSetMoveTest002
643     * @tc.desc Test Js Api KvStoreResultSet.Move() testcase 002
644     * @tc.type: FUNC
645     * @tc.require: issueNumber
646     */
647    it('KvStoreResultSetMoveTest002', 0, async function(done) {
648        try {
649            resultSet.moveToFirst();
650            expect(resultSet.getPosition() == 0).assertTrue();
651            var moved = resultSet.move(3);
652            console.info("KvStoreResultSetMoveTest002 move " + moved);
653            expect(moved).assertTrue();
654            expect(3).assertEqual(resultSet.getPosition());
655        } catch (e) {
656            console.error("KvStoreResultSetMoveTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
657            expect(null).assertFail();
658        }
659        done();
660    })
661
662    /**
663     * @tc.name KvStoreResultSetMoveTest003
664     * @tc.desc Test Js Api KvStoreResultSet.Move() testcase 003
665     * @tc.type: FUNC
666     * @tc.require: issueNumber
667     */
668    it('KvStoreResultSetMoveTest003', 0, async function(done) {
669        try {
670            expect(resultSet.getPosition() == -1).assertTrue();
671            var moved = resultSet.move(3);
672            console.info("KvStoreResultSetMoveTest003 move " + moved);
673            expect(moved && (resultSet.getPosition() == 2)).assertTrue();
674            moved = resultSet.move(2);
675            console.info("KvStoreResultSetMoveTest003 move " + moved);
676            expect(moved && (resultSet.getPosition() == 4)).assertTrue();
677        } catch (e) {
678            console.error("KvStoreResultSetMoveTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
679            expect(null).assertFail();
680        }
681        done();
682    })
683
684    /**
685     * @tc.name KvStoreResultSetMoveTest004
686     * @tc.desc Test Js Api KvStoreResultSet.Move() testcase 004
687     * @tc.type: FUNC
688     * @tc.require: issueNumber
689     */
690    it('KvStoreResultSetMoveTest004', 0, async function(done) {
691        try {
692            var moved = resultSet.move(3, 'test_string');
693            console.info("KvStoreResultSetMoveTest004 move " + moved);
694            expect(null).assertFail();
695        } catch (e) {
696            console.error("KvStoreResultSetMoveTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
697        }
698        done();
699    })
700
701    /**
702     * @tc.name KvStoreResultSetMoveToPositionTest001
703     * @tc.desc Test Js Api KvStoreResultSet.MoveToPosition() testcase 001
704     * @tc.type: FUNC
705     * @tc.require: issueNumber
706     */
707    it('KvStoreResultSetMoveToPositionTest001', 0, async function(done) {
708        try {
709            var moved = resultSet.moveToPosition();
710            console.info("KvStoreResultSetMoveToPositionTest001 moveToPosition " + moved);
711            expect(null).assertFail();
712        } catch (e) {
713            console.error("KvStoreResultSetMoveToPositionTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
714        }
715        done();
716    })
717
718    /**
719     * @tc.name KvStoreResultSetMoveToPositionTest002
720     * @tc.desc Test Js Api KvStoreResultSet.MoveToPosition() testcase 002
721     * @tc.type: FUNC
722     * @tc.require: issueNumber
723     */
724    it('KvStoreResultSetMoveToPositionTest002', 0, async function(done) {
725        try {
726            var moved = resultSet.moveToPosition(1, 'test_string');
727            console.info("KvStoreResultSetMoveToPositionTest002 moveToPosition " + moved);
728            expect(null).assertFail();
729        } catch (e) {
730            console.error("KvStoreResultSetMoveToPositionTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
731        }
732        done();
733    })
734
735    /**
736     * @tc.name KvStoreResultSetMoveToPositionTest003
737     * @tc.desc Test Js Api KvStoreResultSet.MoveToPosition() testcase 003
738     * @tc.type: FUNC
739     * @tc.require: issueNumber
740     */
741    it('KvStoreResultSetMoveToPositionTest003', 0, async function(done) {
742        try {
743            var moved = resultSet.moveToPosition(5);
744            console.info("KvStoreResultSetMoveToPositionTest003 moveToPosition " + moved);
745            expect(moved && (resultSet.getPosition() == 5)).assertTrue();
746        } catch (e) {
747            console.error("KvStoreResultSetMoveToPositionTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
748        }
749        done();
750    })
751
752    /**
753     * @tc.name KvStoreResultSetMoveToPositionTest004
754     * @tc.desc Test Js Api KvStoreResultSet.MoveToPosition() testcase 004
755     * @tc.type: FUNC
756     * @tc.require: issueNumber
757     */
758    it('KvStoreResultSetMoveToPositionTest004', 0, async function(done) {
759        try {
760            var moved = resultSet.move(3);
761            console.info("KvStoreResultSetMoveToPositionTest004 moveToPosition " + moved);
762            expect(moved && (resultSet.getPosition() == 2)).assertTrue();
763            moved = resultSet.moveToPosition(5);
764            console.info("KvStoreResultSetMoveToPositionTest004 moveToPosition " + moved);
765            expect(moved && (resultSet.getPosition() == 5)).assertTrue();
766        } catch (e) {
767            console.error("KvStoreResultSetMoveToPositionTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
768        }
769        done();
770    })
771
772    /**
773     * @tc.name KvStoreResultSetIsFirstTest001
774     * @tc.desc Test Js Api KvStoreResultSet.IsFirst() testcase 001
775     * @tc.type: FUNC
776     * @tc.require: issueNumber
777     */
778    it('KvStoreResultSetIsFirstTest001', 0, async function(done) {
779        try {
780            var flag = resultSet.isFirst();
781            console.info("KvStoreResultSetIsFirstTest001 isFirst " + flag);
782            expect(!flag).assertTrue();
783        } catch (e) {
784            expect(null).assertFail();
785            console.error("KvStoreResultSetIsFirstTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
786        }
787        done();
788    })
789
790    /**
791     * @tc.name KvStoreResultSetIsFirstTest002
792     * @tc.desc Test Js Api KvStoreResultSet.IsFirst() testcase 002
793     * @tc.type: FUNC
794     * @tc.require: issueNumber
795     */
796    it('KvStoreResultSetIsFirstTest002', 0, async function(done) {
797        try {
798            var flag = resultSet.isFirst();
799            console.info("KvStoreResultSetIsFirstTest002 isFirst " + flag);
800            expect(!flag).assertTrue();
801            resultSet.move(3);
802            flag = resultSet.isFirst();
803            console.info("KvStoreResultSetIsFirstTest002 isFirst " + flag);
804            expect(!flag).assertTrue();
805        } catch (e) {
806            expect(null).assertFail();
807            console.error("KvStoreResultSetIsFirstTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
808        }
809        done();
810    })
811
812    /**
813     * @tc.name KvStoreResultSetIsFirstTest003
814     * @tc.desc Test Js Api KvStoreResultSet.IsFirst() testcase 003
815     * @tc.type: FUNC
816     * @tc.require: issueNumber
817     */
818    it('KvStoreResultSetIsFirstTest003', 0, async function(done) {
819        try {
820            var flag = resultSet.isFirst(1);
821            console.info("KvStoreResultSetIsFirstTest003 isFirst " + flag);
822            expect(null).assertFail();
823        } catch (e) {
824            console.error("KvStoreResultSetIsFirstTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
825        }
826        done();
827    })
828
829    /**
830     * @tc.name KvStoreResultSetIsFirstTest004
831     * @tc.desc Test Js Api KvStoreResultSet.IsFirst() testcase 004
832     * @tc.type: FUNC
833     * @tc.require: issueNumber
834     */
835    it('KvStoreResultSetIsFirstTest004', 0, async function(done) {
836        try {
837            var flag = resultSet.isFirst(1, 'test_string');
838            console.info("KvStoreResultSetIsFirstTest004 isFirst " + flag);
839            expect(null).assertFail();
840        } catch (e) {
841            console.error("KvStoreResultSetIsFirstTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
842        }
843        done();
844    })
845
846    /**
847     * @tc.name KvStoreResultSetIsLastTest001
848     * @tc.desc Test Js Api KvStoreResultSet.IsLast() testcase 001
849     * @tc.type: FUNC
850     * @tc.require: issueNumber
851     */
852    it('KvStoreResultSetIsLastTest001', 0, async function(done) {
853        try {
854            var flag = resultSet.isLast();
855            console.info("KvStoreResultSetIsLastTest001 isLast " + flag);
856            expect(!flag).assertTrue();
857        } catch (e) {
858            expect(null).assertFail();
859            console.error("KvStoreResultSetIsFirstTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
860        }
861        done();
862    })
863
864    /**
865     * @tc.name KvStoreResultSetIsLastTest002
866     * @tc.desc Test Js Api KvStoreResultSet.IsLast() testcase 002
867     * @tc.type: FUNC
868     * @tc.require: issueNumber
869     */
870    it('KvStoreResultSetIsLastTest002', 0, async function(done) {
871        try {
872            resultSet.moveToLast();
873            var flag = resultSet.isLast();
874            console.info("KvStoreResultSetIsLastTest002 isLast " + flag);
875            expect(flag).assertTrue();
876        } catch (e) {
877            expect(null).assertFail();
878            console.error("KvStoreResultSetIsLastTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
879        }
880        done();
881    })
882
883    /**
884     * @tc.name KvStoreResultSetIsLastTest003
885     * @tc.desc Test Js Api KvStoreResultSet.IsLast() testcase 003
886     * @tc.type: FUNC
887     * @tc.require: issueNumber
888     */
889    it('KvStoreResultSetIsLastTest003', 0, async function(done) {
890        try {
891            var flag = resultSet.isLast(1);
892            console.info("KvStoreResultSetIsLastTest003 isLast " + flag);
893            expect(null).assertFail();
894        } catch (e) {
895            console.error("KvStoreResultSetIsLastTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
896        }
897        done();
898    })
899
900    /**
901     * @tc.name KvStoreResultSetIsLastTest004
902     * @tc.desc Test Js Api KvStoreResultSet.IsLast() testcase 004
903     * @tc.type: FUNC
904     * @tc.require: issueNumber
905     */
906    it('KvStoreResultSetIsLastTest004', 0, async function(done) {
907        try {
908            var flag = resultSet.isLast(1, 'test_string');
909            console.info("KvStoreResultSetIsLastTest004 isLast " + flag);
910            expect(null).assertFail();
911        } catch (e) {
912            console.error("KvStoreResultSetIsLastTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
913        }
914        done();
915    })
916
917    /**
918     * @tc.name KvStoreResultSetIsBeforeFirstTest001
919     * @tc.desc Test Js Api KvStoreResultSet.IsBeforeFirst() testcase 001
920     * @tc.type: FUNC
921     * @tc.require: issueNumber
922     */
923    it('KvStoreResultSetIsBeforeFirstTest001', 0, async function(done) {
924        try {
925            var flag = resultSet.isBeforeFirst();
926            console.info("KvStoreResultSetIsBeforeFirstTest001 isBeforeFirst " + flag);
927            expect(flag).assertTrue();
928        } catch (e) {
929            expect(null).assertFail();
930            console.error("KvStoreResultSetIsBeforeFirstTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
931        }
932        done();
933    })
934
935    /**
936     * @tc.name KvStoreResultSetIsBeforeFirstTest002
937     * @tc.desc Test Js Api KvStoreResultSet.IsBeforeFirst() testcase 002
938     * @tc.type: FUNC
939     * @tc.require: issueNumber
940     */
941    it('KvStoreResultSetIsBeforeFirstTest002', 0, async function(done) {
942        try {
943            var moved = resultSet.moveToPrevious();
944            expect(!moved).assertTrue();
945            var flag = resultSet.isBeforeFirst();
946            console.info("KvStoreResultSetIsBeforeFirstTest002 isBeforeFirst " + flag);
947            expect(flag).assertTrue();
948        } catch (e) {
949            expect(null).assertFail();
950            console.error("KvStoreResultSetIsBeforeFirstTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
951        }
952        done();
953    })
954
955    /**
956     * @tc.name KvStoreResultSetIsBeforeFirstTest003
957     * @tc.desc Test Js Api KvStoreResultSet.IsBeforeFirst() testcase 003
958     * @tc.type: FUNC
959     * @tc.require: issueNumber
960     */
961    it('KvStoreResultSetIsBeforeFirstTest003', 0, async function(done) {
962        try {
963            var flag = resultSet.isBeforeFirst(1);
964            console.info("KvStoreResultSetIsBeforeFirstTest003 isBeforeFirst " + flag);
965            expect(null).assertFail();
966        } catch (e) {
967            console.error("KvStoreResultSetIsBeforeFirstTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
968        }
969        done();
970    })
971
972    /**
973     * @tc.name KvStoreResultSetIsBeforeFirstTest004
974     * @tc.desc Test Js Api KvStoreResultSet.IsBeforeFirst() testcase 004
975     * @tc.type: FUNC
976     * @tc.require: issueNumber
977     */
978    it('KvStoreResultSetIsBeforeFirstTest004', 0, async function(done) {
979        try {
980            var flag = resultSet.isBeforeFirst(1, 'test_string');
981            console.info("KvStoreResultSetIsBeforeFirstTest004 isBeforeFirst " + flag);
982            expect(null).assertFail();
983        } catch (e) {
984            console.error("KvStoreResultSetIsBeforeFirstTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
985        }
986        done();
987    })
988
989    /**
990     * @tc.name KvStoreResultSetIsAfterLastTest001
991     * @tc.desc Test Js Api KvStoreResultSet.IsAfterLast() testcase 001
992     * @tc.type: FUNC
993     * @tc.require: issueNumber
994     */
995    it('KvStoreResultSetIsAfterLastTest001', 0, async function(done) {
996        try {
997            var flag = resultSet.isAfterLast();
998            console.info("KvStoreResultSetIsAfterLastTest001 isAfterLast " + flag);
999            expect(!flag).assertTrue();
1000        } catch (e) {
1001            expect(null).assertFail();
1002            console.error("KvStoreResultSetIsAfterLastTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
1003        }
1004        done();
1005    })
1006
1007    /**
1008     * @tc.name KvStoreResultSetIsAfterLastTest002
1009     * @tc.desc Test Js Api KvStoreResultSet.IsAfterLast() testcase 002
1010     * @tc.type: FUNC
1011     * @tc.require: issueNumber
1012     */
1013    it('KvStoreResultSetIsAfterLastTest002', 0, async function(done) {
1014        try {
1015            var moved = resultSet.moveToLast();
1016            console.info("KvStoreResultSetIsAfterLastTest002  moveToLast  moved=" + moved);
1017            expect(moved).assertTrue();
1018            moved = resultSet.moveToNext();
1019            console.info("KvStoreResultSetIsAfterLastTest002  moveToNext  moved=" + moved);
1020            expect(moved == false).assertTrue();
1021            var flag = resultSet.isAfterLast();
1022            console.info("KvStoreResultSetIsAfterLastTest002  isAfterLast true=" + flag);
1023            expect(flag).assertTrue();
1024        } catch (e) {
1025            console.error("KvStoreResultSetIsAfterLastTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
1026            expect(null).assertFail();
1027        }
1028        done();
1029    })
1030
1031    /**
1032     * @tc.name KvStoreResultSetIsAfterLastTest003
1033     * @tc.desc Test Js Api KvStoreResultSet.IsAfterLast() testcase 003
1034     * @tc.type: FUNC
1035     * @tc.require: issueNumber
1036     */
1037    it('KvStoreResultSetIsAfterLastTest003', 0, async function(done) {
1038        try {
1039            var flag = resultSet.isAfterLast(1);
1040            console.info("KvStoreResultSetIsAfterLastTest003 isAfterLast " + flag);
1041            expect(null).assertFail();
1042        } catch (e) {
1043            console.error("KvStoreResultSetIsAfterLastTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
1044        }
1045        done();
1046    })
1047
1048    /**
1049     * @tc.name KvStoreResultSetIsAfterLastTest004
1050     * @tc.desc Test Js Api KvStoreResultSet.IsAfterLast() testcase 004
1051     * @tc.type: FUNC
1052     * @tc.require: issueNumber
1053     */
1054    it('KvStoreResultSetIsAfterLastTest004', 0, async function(done) {
1055        try {
1056            var flag = resultSet.isAfterLast(1, 'test_string');
1057            console.info("KvStoreResultSetIsAfterLastTest004 isAfterLast " + flag);
1058            expect(null).assertFail();
1059        } catch (e) {
1060            console.error("KvStoreResultSetIsAfterLastTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
1061        }
1062        done();
1063    })
1064
1065    /**
1066     * @tc.name KvStoreResultSetGetEntryTest001
1067     * @tc.desc Test Js Api KvStoreResultSet.GetEntry() testcase 001
1068     * @tc.type: FUNC
1069     * @tc.require: issueNumber
1070     */
1071    it('KvStoreResultSetGetEntryTest001', 0, async function(done) {
1072        try {
1073            var moved = resultSet.moveToNext();
1074            var entry = resultSet.getEntry();
1075            console.info("KvStoreResultSetGetEntryTest001 getEntry " + entry);
1076            expect(moved && (entry.key == 'batch_test_string_key0')).assertTrue();
1077            expect(moved && (entry.value.value == 'batch_test_string_value')).assertTrue();
1078        } catch (e) {
1079            expect(null).assertFail();
1080            console.error("KvStoreResultSetGetEntryTest001 fail " + `, error code is ${e.code}, message is ${e.message}`);
1081        }
1082        done();
1083    })
1084
1085    /**
1086     * @tc.name KvStoreResultSetGetEntryTest002
1087     * @tc.desc Test Js Api KvStoreResultSet.GetEntry() testcase 002
1088     * @tc.type: FUNC
1089     * @tc.require: issueNumber
1090     */
1091    it('KvStoreResultSetGetEntryTest002', 0, async function(done) {
1092        try {
1093            var moved = resultSet.moveToNext();
1094            var entry = resultSet.getEntry();
1095            console.info("KvStoreResultSetGetEntryTest002 getEntry " + entry);
1096            expect(entry.key == 'batch_test_string_key0').assertTrue();
1097            expect(entry.value.value == 'batch_test_string_value').assertTrue();
1098            moved = resultSet.moveToNext();
1099            expect(moved).assertTrue();
1100            entry = resultSet.getEntry();
1101            console.info("KvStoreResultSetGetEntryTest002 getEntry " + entry);
1102            expect(entry.key == 'batch_test_string_key1').assertTrue();
1103            expect(entry.value.value == 'batch_test_string_value').assertTrue();
1104        } catch (e) {
1105            expect(null).assertFail();
1106            console.error("KvStoreResultSetGetEntryTest002 fail " + `, error code is ${e.code}, message is ${e.message}`);
1107        }
1108        done();
1109    })
1110
1111    /**
1112     * @tc.name KvStoreResultSetGetEntryTest003
1113     * @tc.desc Test Js Api KvStoreResultSet.GetEntry() testcase 003
1114     * @tc.type: FUNC
1115     * @tc.require: issueNumber
1116     */
1117    it('KvStoreResultSetGetEntryTest003', 0, async function(done) {
1118        try {
1119            var entry = resultSet.getEntry(1);
1120            console.info("KvStoreResultSetGetEntryTest003 getEntry " + entry);
1121            expect(null).assertFail();
1122        } catch (e) {
1123            console.error("KvStoreResultSetGetEntryTest003 fail " + `, error code is ${e.code}, message is ${e.message}`);
1124        }
1125        done();
1126    })
1127
1128    /**
1129     * @tc.name KvStoreResultSetGetEntryTest004
1130     * @tc.desc Test Js Api KvStoreResultSet.GetEntry() testcase 004
1131     * @tc.type: FUNC
1132     * @tc.require: issueNumber
1133     */
1134    it('KvStoreResultSetGetEntryTest004', 0, async function(done) {
1135        try {
1136            var entry = resultSet.getEntry(1, 'test_string');
1137            console.info("KvStoreResultSetGetEntryTest004 getEntry " + entry);
1138            expect(null).assertFail();
1139        } catch (e) {
1140            console.error("KvStoreResultSetGetEntryTest004 fail " + `, error code is ${e.code}, message is ${e.message}`);
1141        }
1142        done();
1143    })
1144})
1145