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