• 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, describe, expect, it} from 'deccjsunit/index'
18
19const URI_CALLLOG = "datashare:///com.ohos.calllogability";
20const calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
21import common from './common.js';
22
23describe('CalllogTest', function() {
24    console.log("----------CalllogTest is starting!----------");
25
26    async function calllogQueryForALL(map, tag)
27    {
28        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
29        console.info(tag + ': calllogQueryByInsert start ! dataShareHelper = ' + dataShareHelper);
30        let resultColumns = common.getCallLogResultColumns();
31        let condition = new dataShare.DataSharePredicates();
32        condition.equalTo("id", map.get("id"));
33        try {
34            let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
35            if (resultSet.rowCount > 0) {
36                if (resultSet.goToFirstRow()) {
37                    do {
38                        for (var [key, value] of map) {
39                            let dbresult = resultSet.getString(resultSet.getColumnIndex(key));
40                            console.info(tag + ' : logMessage calllogQueryByInsert key = ' + key +
41                                         ' dbResult :' + dbresult + ' value : ' + value);
42                            console.info(tag + ' : logMessage calllogQueryByInsert value ' + (value == dbresult));
43                            expect(value == dbresult).assertEqual(true);
44                        }
45                    } while (resultSet.goToNextRow());
46                }
47            }
48            console.info(tag + " :logMessage calllogQueryByInsert: end");
49            resultSet.close();
50        } catch (error) {
51            console.info(tag + " :logMessage calllogQueryByInsert: error = " + error);
52        }
53    }
54
55    async function calllogQueryForDelete(map, tag)
56    {
57        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
58        console.info(tag + ': calllogQueryForDelete start ! dataShareHelper = ' + dataShareHelper);
59        let resultColumns = common.getCallLogResultColumns();
60        let condition = new dataShare.DataSharePredicates();
61        condition.equalTo("id", map.get("id"));
62        try {
63            let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
64            expect(resultSet.goToFirstRow() == false).assertTrue();
65            console.info(tag + " :logMessage calllogQueryForDelete: goToFirstRow " + resultSet.goToFirstRow());
66            resultSet.close();
67        } catch (error) {
68            console.info(tag + " :logMessage calllogQueryForDelete: error = " + error);
69        }
70    }
71
72    async function calllogQueryForBatchInsert(array, tag)
73    {
74        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
75        console.info(tag + ': calllogQueryForBatchInsert start ! dataShareHelper = ' + dataShareHelper);
76        let resultColumns = common.getCallLogResultColumns();
77        let condition = new dataShare.DataSharePredicates();
78        condition.equalTo("phone_number", array[0].get("phone_number"));
79        try {
80            let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
81            var size = array.size();
82            console.info(tag + ' : logMessage calllogQueryForBatchInsert: size' + size);
83            expect(resultSet.rowCount == size).assertEqual(true);
84            var i = 0;
85            if (resultSet.rowCount > 0) {
86                if (resultSet.goToFirstRow()) {
87                    do {
88                        for (var [key, value] of array[i]) {
89                            let dbresult = resultSet.getString(resultSet.getColumnIndex(key));
90                            console.info(tag + ' : logMessage calllogQueryForBatchInsert dbresult :' + dbresult +
91                                         ' value : ' + value);
92                            console.info(tag + ' : logMessage calllogQueryForBatchInsert value ' + (value == dbresult));
93                            expect(value == dbresult).assertTrue();
94                        }
95                        i++;
96                    } while (resultSet.goToNextRow());
97                }
98            }
99            resultSet.close();
100        } catch (error) {
101            console.info(tag + " :logMessage calllogQueryByInsert: error = " + error);
102        }
103    }
104
105    async function calllogDelete(tag)
106    {
107        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
108        let condition = new dataShare.DataSharePredicates();
109        condition.greaterThan("id", "0");
110        var deleteCode = await dataShareHelper.delete(calllogUri, condition);
111        console.info(tag + ': calllogDelete deleteCode = ' + deleteCode);
112        expect(deleteCode == 0).assertTrue();
113    }
114
115    /**
116     * @tc.number  calllog_insert_test_100
117     * @tc.name    Insert call log
118     * @tc.desc    Function test
119     */
120    it("calllog_insert_test_100", 0, async function(done) {
121        console.info("--------logMessage calllog_insert_test_100 is starting!------------");
122        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
123        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
124        try {
125            var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert());
126            console.info("logMessage calllog_insert_test_100: calllogId = " + calllogId);
127            expect(calllogId > 0).assertTrue();
128            var map = common.getCallLogInsertMap()
129            map.set("id", calllogId.toString());
130            await calllogQueryForALL(map, "calllog_insert_test_100");
131            await calllogDelete("calllog_insert_test_100");
132            done();
133        } catch (error) {
134            console.info("logMessage calllog_insert_test_100: calllog insert error = " + error);
135            done();
136        }
137    });
138
139    /**
140     * @tc.number  calllog_update_test_400
141     * @tc.name    Single call log update
142     * @tc.desc    Function test
143     */
144    it("calllog_update_test_400", 0, async function(done) {
145        console.info("--------logMessage calllog_update_test_400 is starting!------------");
146        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
147        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
148
149        try {
150            var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert());
151            console.info("logMessage calllog_update_test_400: calllogId = " + calllogId);
152            expect(calllogId > 0).assertTrue();
153            await UpdateOneCalllog();
154            done();
155        } catch (error) {
156            console.info("logMessage calllog_update_test_400: calllog insert error = " + error);
157            done();
158        }
159
160        async function UpdateOneCalllog()
161        {
162            try {
163                let condition = new dataShare.DataSharePredicates();
164                condition.equalTo("id", calllogId.toString());
165                var updateCode = await dataShareHelper.update(calllogUri, common.getCallLogUpdate(), condition);
166                console.info("logMessage calllog_update_test_400: updateCode = " + updateCode);
167                expect(updateCode == 0).assertTrue();
168                var map = common.getCallLogUpdateMap();
169                map.set("id", calllogId.toString());
170                await calllogQueryForALL(map, "calllog_update_test_400");
171                await calllogDelete("calllog_update_test_400");
172            } catch (error) {
173                console.info("logMessage calllog_update_test_400: update error = " + error);
174                done();
175            }
176        }
177    });
178
179    /**
180     * @tc.number  calllog_update_test_500
181     * @tc.name    Update all call logs
182     * @tc.desc    Function test
183     */
184    it("calllog_update_test_500", 0, async function(done) {
185        console.info("--------logMessage calllog_update_test_500 is starting!------------");
186        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
187        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
188        var phoneNumber = randomNum(12);
189        var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "500"};
190        try {
191            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
192            console.info("logMessage calllog_update_test_500: calllogId = " + calllogId);
193            expect(calllogId > 0).assertTrue();
194            await UpdateAllCalllog();
195            done();
196        } catch (error) {
197            console.info("logMessage calllog_update_test_500: calllog insert error = " + error);
198            done();
199        }
200        async function UpdateAllCalllog()
201        {
202            var updateValues = {"answer_state" : "1"};
203            let condition = new dataShare.DataSharePredicates();
204            condition.greaterThan("id", "0");
205            try {
206                var updateCode = await dataShareHelper.update(calllogUri, updateValues, condition)
207                console.info("logMessage calllog_update_test_500: updateCode = " + updateCode);
208                expect(updateCode == 0).assertTrue();
209                var map = new Map([ [ "phone_number", phoneNumber ], [ "ring_duration", "500" ] ])
210                map.set("id", calllogId.toString());
211                map.set("answer_state", "1");
212                await calllogQueryForALL(map, "calllog_update_test_500");
213                await calllogDelete("calllog_update_test_500");
214            } catch (error) {
215                console.info("logMessage calllog_update_test_500: update error = " + error);
216                done();
217            }
218        }
219    });
220
221    /**
222     * @tc.number  calllog_delete_test_1300
223     * @tc.name    Delete call log
224     * @tc.desc    Function test
225     */
226    it("calllog_delete_test_1300", 0, async function(done) {
227        console.info("--------logMessage calllog_delete_test_1300 is starting!------------");
228        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
229        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
230        var phoneNumber = randomNum(5);
231        var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "200"};
232        try {
233            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
234            console.info("logMessage calllog_delete_test_1300: calllogId = " + calllogId);
235            expect(calllogId > 0).assertTrue();
236            await DeleteOneCalllog();
237            done();
238        } catch (error) {
239            console.info("logMessage calllog_delete_test_1300: calllog insert error = " + error);
240            done();
241        }
242
243        async function DeleteOneCalllog()
244        {
245            try {
246                let condition = new dataShare.DataSharePredicates();
247                condition.equalTo("id", calllogId.toString());
248                var deleteCode = await dataShareHelper.delete(calllogUri, condition);
249                console.info("logMessage calllog_delete_test_1300: deleteCode = " + deleteCode);
250                expect(deleteCode == 0).assertTrue();
251                var map = new Map();
252                map.set("id", calllogId.toString());
253                await calllogQueryForDelete(map, "calllog_delete_test_1300");
254            } catch (error) {
255                console.info("logMessage calllog_delete_test_1300: delete error = " + error);
256                done();
257            }
258        }
259    });
260
261    /**
262     * @tc.number  calllog_batchInset_test_1600
263     * @tc.name    Insert call logs in batches
264     * @tc.desc    Function test
265     */
266    it("calllog_batchInset_test_1600", 0, async function(done) {
267        console.info("--------logMessage calllog_batchInset_test_1600 is starting!------------");
268        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
269        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
270        var phoneNumber = randomNum(13);
271        var addBulk_value1 = {"phone_number" : phoneNumber, "ring_duration" : "333"};
272        var addBulk_value2 = {"phone_number" : phoneNumber, "ring_duration" : "600"};
273        var addBulk_value3 = {"phone_number" : phoneNumber, "ring_duration" : "600"};
274        var addBulk_value4 = {"phone_number" : phoneNumber, "ring_duration" : "600"};
275        var addBulk_value5 = {"phone_number" : phoneNumber, "ring_duration" : "600"};
276        var listAddBluk = [];
277        listAddBluk[0] = addBulk_value1;
278        listAddBluk[1] = addBulk_value2;
279        listAddBluk[2] = addBulk_value3;
280        listAddBluk[3] = addBulk_value4;
281        listAddBluk[4] = addBulk_value5;
282        try {
283            var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk);
284            console.info("logMessage calllog_batchInset_test_1600: batchInsertCode = " + batchInsertCode);
285            expect(batchInsertCode == 0).assertTrue();
286            await calllogQueryForBatchInsert(common.getCallLogBatchInsert(), "calllog_batchInset_test_1600");
287            await calllogDelete("calllog_batchInset_test_1600");
288            done();
289        } catch (error) {
290            console.info("logMessage calllog_batchInset_test_1600: error = " + error);
291            done();
292        }
293    });
294
295    /**
296     * @tc.number  calllog_query_test_1200
297     * @tc.name    Query all call logs
298     * @tc.desc    Function test
299     */
300    it("calllog_query_test_1200", 0, async function(done) {
301        console.info("------------calllog_query_test_1200  is starting!-----------");
302        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
303        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
304        var phoneNumber = randomNum(5);
305        var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "200"};
306        try {
307            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
308            console.info("logMessage calllog_query_test_1200: calllogId = " + calllogId);
309            expect(calllogId > 0).assertTrue();
310            var map = new Map([ [ "phone_number", phoneNumber ], [ "ring_duration", "200" ] ]);
311            map.set("id", calllogId.toString());
312            await calllogQueryForALL(map, "calllog_query_test_1200");
313            await calllogDelete("calllog_query_test_1200");
314            done();
315        } catch (error) {
316            console.info("logMessage calllog_query_test_1200: calllog insert error = " + error);
317        }
318    });
319
320    /**
321     * @tc.number  calllog_query_test_1100
322     * @tc.name    Query call logs of combined conditions
323     * @tc.desc    Function test
324     */
325    it("calllog_query_test_1100", 0, async function(done) {
326        console.info("------------calllog_query_test_1100 is starting!-----------");
327        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
328        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
329        var phoneNumber = randomNum(7);
330        var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "100"};
331        try {
332            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
333            console.info("logMessage calllog_query_test_1100: calllogId = " + calllogId);
334            expect(calllogId > 0).assertTrue();
335            await QueryCalllog();
336            await calllogDelete("calllog_query_test_1100");
337            done()
338        } catch (error) {
339            console.info("logMessage calllog_query_test_1100: calllog insert error = " + error);
340            done();
341        }
342
343        async function QueryCalllog()
344        {
345            var resultColumns = [ "id", "phone_number" ];
346            let condition = new dataShare.DataSharePredicates();
347            condition.greaterThan("id", "0");
348            condition.and();
349            condition.lessThan("ring_duration", "200").orderByAsc("id");
350            try {
351                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
352                if (resultSet.goToFirstRow()) {
353                    do {
354                        console.info("logMessage calllog_query_test_1100: columnNames:" + resultSet.columnNames);
355                        console.info("logMessage calllog_query_test_1100: columnCount:" + resultSet.columnCount);
356                        console.info('logMessage calllog_query_test_1100: id = ' + resultSet.getString(0));
357                        expect(resultSet.getString(0) == calllogId.toString()).assertTrue();
358                        console.info('logMessage calllog_query_test_1100: phone_number = ' + resultSet.getString(1));
359                        expect(resultSet.getString(1) == phoneNumber).assertTrue();
360                    } while (resultSet.goToNextRow());
361                }
362                resultSet.close();
363            } catch (error) {
364                console.info("logMessage calllog_query_test_1100: query error:" + error);
365                done();
366            }
367        }
368    });
369
370    /**
371     * @tc.number  calllog_query_test_800
372     * @tc.name    Query a single call log
373     * @tc.desc    Function test
374     */
375    it("calllog_query_test_800", 0, async function(done) {
376        console.info("------------calllog_query_test_800 is starting!-----------");
377        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
378        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
379        var phoneNumber = randomNum(10);
380        var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "100"};
381        try {
382            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
383            console.info("logMessage calllog_query_test_800: calllogId = " + calllogId);
384            expect(calllogId > 0).assertTrue();
385            await QueryOneCalllog();
386            await calllogDelete("calllog_query_test_800");
387            done();
388        } catch (error) {
389            console.info("logMessage calllog_query_test_800: calllog insert error = " + error);
390            done();
391        }
392
393        async function QueryOneCalllog()
394        {
395            var resultColumns = [ "id", "phone_number" ];
396            let condition = new dataShare.DataSharePredicates();
397            condition.equalTo("id", calllogId.toString());
398            try {
399                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
400                if (resultSet.goToFirstRow()) {
401                    do {
402                        console.info("logMessage calllog_query_test_800: columnNames:" + resultSet.columnNames);
403                        console.info("logMessage calllog_query_test_800: columnCount:" + resultSet.columnCount);
404                        console.info('logMessage calllog_query_test_800: id = ' + resultSet.getString(0));
405                        expect(resultSet.getString(0) == calllogId.toString()).assertTrue();
406                        console.info('logMessage calllog_query_test_800: phone_number = ' + resultSet.getString(1));
407                        expect(resultSet.getString(1) == phoneNumber).assertTrue();
408                    } while (resultSet.goToNextRow());
409                }
410                resultSet.close();
411            } catch (error) {
412                console.info("logMessage calllog_query_test_800: query error = " + error);
413                done();
414            }
415        }
416    });
417
418    /**
419     * @tc.number  calllog_fuzzyquery_test_100
420     * @tc.name    Fuzzy query ability based on mobile phone number (beginning of a certain field)
421     * @tc.desc    Function test
422     */
423    it("calllog_fuzzyquery_test_100", 0, async function(done) {
424        console.info("------------calllog_fuzzyquery_test_100 is starting!-----------");
425        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
426        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
427        var phoneNumber = randomNum(8);
428        var phoneNumber_Test = phoneNumber.substring(0,3);
429        var insertValues = {"phone_number" : phoneNumber};
430        try {
431            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
432            console.info("logMessage calllog_fuzzyquery_test_100: calllogId = " + calllogId);
433            expect(calllogId > 0).assertTrue();
434            await QueryByStartsWithPhoneNumber();
435            await calllogDelete("calllog_fuzzyquery_test_100");
436            done();
437        } catch (error) {
438            console.info("logMessage calllog_fuzzyquery_test_100: calllog insert error = " + error);
439            done();
440        }
441
442        async function QueryByStartsWithPhoneNumber()
443        {
444            var resultColumns = [ "id", "phone_number" ];
445            let condition = new dataShare.DataSharePredicates();
446            condition.like("phone_number", phoneNumber_Test + "%");
447            try {
448                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
449                if (resultSet.goToFirstRow()) {
450                    do {
451                        console.info("logMessage calllog_fuzzyquery_test_100: columnNames:" + resultSet.columnNames);
452                        console.info("logMessage calllog_fuzzyquery_test_100: columnCount:" + resultSet.columnCount);
453                        console.info('logMessage calllog_fuzzyquery_test_100: id = ' + resultSet.getString(0));
454                        expect(resultSet.getString(0) == calllogId.toString()).assertTrue();
455                        console.info(
456                            'logMessage calllog_fuzzyquery_test_100: phone_number = ' + resultSet.getString(1));
457                        expect(resultSet.getString(1) == phoneNumber).assertTrue();
458                    } while (resultSet.goToNextRow());
459                }
460                resultSet.close();
461            } catch (error) {
462                console.info("logMessage calllog_fuzzyquery_test_100: query error = " + error);
463                done();
464            }
465        }
466    });
467
468    /**
469     * @tc.number  calllog_fuzzyquery_test_200
470     * @tc.name    Fuzzy query ability based on mobile phone number (at the end of a certain field)
471     * @tc.desc    Function test
472     */
473    it("calllog_fuzzyquery_test_200", 0, async function(done) {
474        console.info("------------calllog_fuzzyquery_test_200 is starting!-----------");
475        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
476        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
477        var phoneNumber = randomNum(8);
478        var phoneNumber_Test = phoneNumber.substring(6,9);
479        var insertValues = {"phone_number" : phoneNumber};
480        try {
481            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
482            console.info("logMessage calllog_fuzzyquery_test_200: calllogId = " + calllogId);
483            expect(calllogId > 0).assertTrue();
484            await QueryByEndWithPhoneNumber();
485            await calllogDelete("calllog_fuzzyquery_test_200");
486            done();
487        } catch (error) {
488            console.info("logMessage calllog_fuzzyquery_test_200: calllog insert error = " + error);
489            done();
490        }
491
492        async function QueryByEndWithPhoneNumber()
493        {
494            var resultColumns = [ "id", "phone_number" ];
495            let condition = new dataShare.DataSharePredicates();
496            condition.like("phone_number", "%" + phoneNumber_Test);
497            try {
498                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
499                if (resultSet.goToFirstRow()) {
500                    do {
501                        console.info("logMessage calllog_fuzzyquery_test_200: columnNames:" + resultSet.columnNames);
502                        console.info("logMessage calllog_fuzzyquery_test_200: columnCount:" + resultSet.columnCount);
503                        console.info('logMessage calllog_fuzzyquery_test_200: id = ' + resultSet.getString(0));
504                        expect(resultSet.getString(0) == calllogId.toString()).assertTrue();
505                        console.info(
506                            'logMessage calllog_fuzzyquery_test_200: phone_number = ' + resultSet.getString(1));
507                        expect(resultSet.getString(1) == phoneNumber).assertTrue();
508                    } while (resultSet.goToNextRow());
509                }
510                resultSet.close();
511            } catch (error) {
512                console.info("logMessage calllog_fuzzyquery_test_200: query error = " + error);
513                done();
514            }
515        }
516    });
517
518    /**
519     * @tc.number  calllog_fuzzyquery_test_300
520     * @tc.name    Fuzzy query ability based on mobile phone number (including a certain field)
521     * @tc.desc    Function test
522     */
523    it("calllog_fuzzyquery_test_300", 0, async function(done) {
524        console.info("------------calllog_fuzzyquery_test_300 is starting!-----------");
525        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
526        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
527        var phoneNumber = randomNum(15);
528        var insertValues = {"phone_number" : phoneNumber};
529        try {
530            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
531            console.info("logMessage calllog_fuzzyquery_test_300: calllogId = " + calllogId);
532            expect(calllogId > 0).assertTrue();
533            await QueryByPhoneNumberContainsField();
534            await calllogDelete("calllog_fuzzyquery_test_300");
535            done();
536        } catch (error) {
537            console.info("logMessage calllog_fuzzyquery_test_300: calllog insert error = " + error);
538            done();
539        }
540
541        async function QueryByPhoneNumberContainsField()
542        {
543            var resultColumns = [ "id", "phone_number" ];
544            let condition = new dataShare.DataSharePredicates();
545            var phoneNumber_Test = phoneNumber.substring(7,10);
546            condition.like("phone_number", "%" + phoneNumber_Test + "%");
547            try {
548                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
549                if (resultSet.goToFirstRow()) {
550                    do {
551                        console.info("logMessage calllog_fuzzyquery_test_300: columnNames:" + resultSet.columnNames);
552                        console.info("logMessage calllog_fuzzyquery_test_300: columnCount:" + resultSet.columnCount);
553                        console.info('logMessage calllog_fuzzyquery_test_300: id = ' + resultSet.getString(0));
554                        expect(resultSet.getString(0) == calllogId.toString()).assertTrue();
555                        console.info(
556                            'logMessage calllog_fuzzyquery_test_300: phone_number = ' + resultSet.getString(1));
557                        expect(resultSet.getString(1) == phoneNumber).assertTrue();
558                    } while (resultSet.goToNextRow());
559                }
560                resultSet.close();
561            } catch (error) {
562                console.info("logMessage calllog_fuzzyquery_test_300: query error = " + error);
563                done();
564            }
565        }
566    });
567
568    /**
569     * @tc.number  abnormal_calllog_insert_test_200
570     * @tc.name    Abnormal use case, an incorrect field is passed in when inserting data
571     * @tc.desc    Function test
572     */
573    it("abnormal_calllog_insert_test_200", 0, async function(done) {
574        console.info("------------abnormal_calllog_insert_test_200 is starting!-----------");
575        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
576        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
577        var phoneNumber = randomNum(9);
578        var insertValues = {"phone_numbers" : phoneNumber};
579        try {
580            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
581            console.info("logMessage abnormal_calllog_insert_test_200: calllogId = " + calllogId);
582            expect(calllogId == -1).assertTrue();
583            done();
584        } catch (error) {
585            console.info("logMessage abnormal_calllog_insert_test_200: calllog insert error = " + error);
586            done();
587        }
588    });
589
590    /**
591     * @tc.number  abnormal_calllog_insert_test_300
592     * @tc.name    Abnormal use case, an incorrect table name is passed in when inserting data
593     * @tc.desc    Function test
594     */
595    it("abnormal_calllog_insert_test_300", 0, async function(done) {
596        console.info("------------abnormal_calllog_insert_test_300 is starting!-----------");
597        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
598        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
599        var errorUri = "datashare:///com.ohos.calllogability/calls/calllogs";
600        var phoneNumber = randomNum(8);
601        var insertValues = {"phone_number" : phoneNumber};
602        try {
603            var calllogId = await dataShareHelper.insert(errorUri, insertValues);
604            console.info("logMessage abnormal_calllog_insert_test_300: calllogId = " + calllogId);
605            expect(calllogId == -1).assertTrue();
606            done();
607        } catch (error) {
608            console.info("logMessage abnormal_calllog_insert_test_300: calllog insert error = " + error);
609            done();
610        }
611    });
612
613    /**
614     * @tc.number  abnormal_calllog_update_test_600
615     * @tc.name    Abnormal use case, passing in a wrong field when updating data
616     * @tc.desc    Function test
617     */
618    it("abnormal_calllog_update_test_600", 0, async function(done) {
619        console.info("------------abnormal_calllog_update_test_600 is starting!-----------");
620        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
621        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
622        var phoneNumber = randomNum(9);
623        var insertValues = {"phone_number" : phoneNumber};
624        try {
625            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
626            console.info("logMessage abnormal_calllog_update_test_600: calllogId = " + calllogId);
627            expect(calllogId > 0).assertTrue();
628            await abnormalUpdate();
629            await calllogDelete("abnormal_calllog_update_test_600");
630            done();
631        } catch (error) {
632            console.info("logMessage abnormal_calllog_update_test_600: calllog insert error = " + error);
633            done();
634        }
635
636        async function abnormalUpdate()
637        {
638            var phoneNumber_Test = randomNum(7);
639            var updateValues = {"phone_numbers" : phoneNumber_Test};
640            let condition = new dataShare.DataSharePredicates();
641            condition.equalTo("ids", calllogId.toString());
642            try {
643                var updataCode = await dataShareHelper.update(calllogUri, updateValues, condition);
644                console.info("logMessage abnormal_calllog_update_test_600: updataCode = " + updataCode);
645                expect(updataCode == -1).assertTrue();
646                var map = new Map();
647                map.set("id", calllogId.toString());
648                map.set("phone_number", phoneNumber);
649                await calllogQueryForALL(map, "abnormal_calllog_update_test_600");
650            } catch (error) {
651                console.info("logMessage abnormal_calllog_update_test_600: update error = " + error);
652                done();
653            }
654        }
655    });
656
657    /**
658     * @tc.number  abnormal_calllog_update_test_700
659     * @tc.name    Abnormal use case, an incorrect table name is passed in when updating data
660     * @tc.desc    Function test
661     */
662    it("abnormal_calllog_update_test_700", 0, async function(done) {
663        console.info("------------abnormal_calllog_update_test_700 is starting!-----------");
664        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
665        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
666        var errorUri = "datashare:///com.ohos.calllogability/calls/calllogs";
667        var phoneNumber = randomNum(6);
668        var insertValues = {"phone_number" : phoneNumber};
669        try {
670            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
671            console.info("logMessage abnormal_calllog_update_test_700: calllogId = " + calllogId);
672            expect(calllogId > 0).assertTrue();
673            await abnormalUpdate();
674            await calllogDelete("abnormal_calllog_update_test_700");
675            done();
676        } catch (error) {
677            console.info("logMessage abnormal_calllog_update_test_700: calllog insert error = " + error);
678            done();
679        }
680
681        async function abnormalUpdate()
682        {
683            var phoneNumber_Test = randomNum(7);
684            var updateValues = {"phone_numbers" : phoneNumber_Test};
685            let condition = new dataShare.DataSharePredicates();
686            condition.equalTo("id", calllogId.toString());
687            try {
688                var updataCode = await dataShareHelper.update(errorUri, updateValues, condition);
689                console.info("logMessage abnormal_calllog_update_test_700: updataCode = " + updataCode);
690                expect(updataCode == -1).assertTrue();
691                var map = new Map();
692                map.set("id", calllogId.toString());
693                map.set("phone_number", phoneNumber);
694                await calllogQueryForALL(map, "abnormal_calllog_update_test_700");
695                done();
696            } catch (error) {
697                console.info("logMessage abnormal_calllog_update_test_700: update error = " + error);
698                done();
699            }
700        }
701    });
702
703    /**
704     * @tc.number  abnormal_calllog_delete_test_1400
705     * @tc.name    Abnormal use case, passing in a wrong field when deleting data
706     * @tc.desc    Function test
707     */
708    it("abnormal_calllog_delete_test_1400", 0, async function(done) {
709        console.info("------------abnormal_calllog_delete_test_1400 is starting!-----------");
710        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
711        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
712        var phoneNumber = randomNum(5);
713        var insertValues = {"phone_number" : phoneNumber};
714        try {
715            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
716            console.info("logMessage abnormal_calllog_delete_test_1400: calllogId = " + calllogId);
717            expect(calllogId > 0).assertTrue();
718            await abnormalDelete();
719            await calllogDelete("abnormal_calllog_delete_test_1400");
720            done();
721        } catch (error) {
722            console.info("logMessage abnormal_calllog_delete_test_1400: calllog insert error = " + error);
723            done();
724        }
725
726        async function abnormalDelete()
727        {
728            let condition = new dataShare.DataSharePredicates();
729            condition.equalTo("ids", calllogId.toString());
730            try {
731                var deleteCode = await dataShareHelper.delete(calllogUri, condition);
732                console.info("logMessage abnormal_calllog_delete_test_1400: deleteCode = " + deleteCode);
733                expect(deleteCode == -1).assertTrue();
734                var map = new Map();
735                map.set("id", calllogId.toString());
736                map.set("phone_number", phoneNumber);
737                await calllogQueryForALL(map, "abnormal_calllog_delete_test_1400");
738            } catch (error) {
739                console.info("logMessage abnormal_calllog_delete_test_1400: delete error = " + error);
740                done();
741            }
742        }
743    });
744
745    /**
746     * @tc.number  abnormal_calllog_delete_test_1500
747     * @tc.name    Abnormal use case, passing in an incorrect table name when deleting data
748     * @tc.desc    Function test
749     */
750    it("abnormal_calllog_delete_test_1500", 0, async function(done) {
751        console.info("------------abnormal_calllog_delete_test_1500 is starting!-----------");
752        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
753        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
754        var errorUri = "datashare:///com.ohos.calllogability/calls/calllogs";
755        var phoneNumber = randomNum(6);
756        var insertValues = {"phone_number" : phoneNumber};
757        try {
758            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
759            console.info("logMessage abnormal_calllog_delete_test_1500: calllogId = " + calllogId);
760            expect(calllogId > 0).assertTrue();
761            await abnormalDelete();
762            await calllogDelete("abnormal_calllog_delete_test_1500");
763            done();
764        } catch (error) {
765            console.info("logMessage abnormal_calllog_delete_test_1500: calllog insert error = " + error);
766            done();
767        }
768
769        async function abnormalDelete()
770        {
771            let condition = new dataShare.DataSharePredicates();
772            condition.equalTo("id", calllogId.toString());
773            try {
774                var deleteCode = await dataShareHelper.delete(errorUri, condition);
775                console.info("logMessage abnormal_calllog_delete_test_1500: deleteCode = " + deleteCode);
776                expect(deleteCode == -1).assertTrue();
777                done()
778                var map = new Map();
779                map.set("id", calllogId.toString());
780                map.set("phone_number", phoneNumber);
781                await calllogQueryForALL(map, "abnormal_calllog_delete_test_1500");
782            } catch (error) {
783                console.info("logMessage abnormal_calllog_delete_test_1500: delete error = " + error);
784                done();
785            }
786        }
787    });
788
789    /**
790     * @tc.number  abnormal_calllog_query_test_900
791     * @tc.name    Abnormal use case, an incorrect field is passed in when querying
792     * @tc.desc    Function test
793     */
794    it("abnormal_calllog_query_test_900", 0, async function(done) {
795        console.info("------------abnormal_calllog_query_test_900 is starting!-----------");
796        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
797        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
798        var phoneNumber = randomNum(6);
799        var insertValues = {"phone_number" : phoneNumber};
800        try {
801            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
802            console.info("logMessage abnormal_calllog_query_test_900: calllogId = " + calllogId);
803            expect(calllogId > 0).assertTrue();
804            await abnormalQuery();
805            await calllogDelete("abnormal_calllog_query_test_900");
806            done();
807        } catch (error) {
808            console.info("logMessage abnormal_calllog_query_test_900: calllog insert error = " + error);
809            done();
810        }
811
812        async function abnormalQuery()
813        {
814            var resultColumns = [ "id", "phone_number" ];
815            let condition = new dataShare.DataSharePredicates();
816            condition.equalTo("ids", calllogId.toString());
817            try {
818                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
819                console.info('logMessage abnormal_calllog_query_test_900: goToFirstRow' + resultSet.goToFirstRow());
820                expect(resultSet.goToFirstRow()).assertEqual(false);
821                resultSet.close();
822            } catch (error) {
823                console.info("logMessage abnormal_calllog_query_test_900:query error = " + error);
824                done();
825            }
826        }
827    });
828
829    /**
830     * @tc.number  abnormal_calllog_batchinsert_test_1700
831     * @tc.name    abnormal_batchinsert
832     * @tc.desc    Function test
833     */
834    it("abnormal_calllog_batchinsert_test_1700", 0, async function(done) {
835        console.info("--------logMessage abnormal_calllog_batchinsert_test_1700 is starting!------------");
836        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
837        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
838        var phoneNumber = randomNum(9);
839        var phoneNumber_Test = randomNum(6);
840        var addBulk_value1 = {"phone_number" : phoneNumber, "ring_duration" : "500"};
841        var addBulk_value2 = {"phone_number" : phoneNumber_Test, "ring_duration" : "100"};
842        var addBulk_value3 = {"phone_numbers" : phoneNumber_Test, "ring_duration" : "100"};
843        var addBulk_value4 = {"phone_number" : phoneNumber_Test, "ring_durations" : "100"};
844        var addBulk_value5 = {"phone_number" : phoneNumber_Test, "ring_duration" : "100"};
845        var listAddBluk = [];
846        listAddBluk[0] = addBulk_value1;
847        listAddBluk[1] = addBulk_value2;
848        listAddBluk[2] = addBulk_value3;
849        listAddBluk[3] = addBulk_value4;
850        listAddBluk[4] = addBulk_value5;
851        try {
852            var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk);
853            console.info("logMessage abnormal_calllog_batchinsert_test_1700: batchInsertCode = " + batchInsertCode);
854            expect(batchInsertCode == -1).assertTrue();
855            done();
856        } catch (error) {
857            console.info("logMessage abnormal_calllog_batchinsert_test_1700: batchInsert error = " + error);
858            done();
859        }
860    });
861
862    /**
863     * @tc.number  calllog_delete_test_1800
864     * @tc.name    batchDelete
865     * @tc.desc    Function test
866     */
867    it("calllog_delete_test_1800", 0, async function(done) {
868        console.info("--------logMessage calllog_delete_test_1800 is starting!------------");
869        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
870        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
871        try {
872            var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert());
873            console.info("logMessage calllog_delete_test_1800: calllogId = " + calllogId);
874            expect(calllogId > 0).assertTrue();
875            var map = common.getCallLogInsertMap()
876            map.set("id", calllogId.toString());
877            await calllogQueryForALL(map, "calllog_delete_test_1800");
878            await executeBatch();
879        } catch (error) {
880            console.info("logMessage calllog_delete_test_1800: calllog insert error = " + error);
881            done();
882        }
883
884        async function executeBatch()
885        {
886            console.info("logMessage calllog_delete_test_1800:  executeBatch start ");
887            let condition = new dataShare.DataSharePredicates();
888            condition.equalTo("id", calllogId.toString());
889            dataShareHelper.executeBatch(URI_CALLLOG, [ {
890                uri : calllogUri,
891                type : featureAbility.DataAbilityOperationType.TYPE_DELETE,
892                predicates : condition,
893                expectedCount : 0,
894                PredicatesBackReferences : {},
895                interrupted : true,
896            } ],
897                (error, data) => {
898                    console.info("logMessage calllog_delete_test_1800: executeBatch data = " + JSON.stringify(data));
899                    console.info("logMessage calllog_delete_test_1800: data_3 = " + data);
900                    console.info("logMessage calllog_delete_test_1800:  data_1= " + data[0].count);
901                    expect(data[0].count == 0).assertTrue();
902                    done();
903                });
904        }
905    });
906
907    /**
908     * @tc.number  calllog_update_test_1900
909     * @tc.name    batchUpdate
910     * @tc.desc    Function test
911     */
912    it("calllog_update_test_1900", 0, async function(done) {
913        console.info("--------logMessage calllog_update_test_1900 is starting!------------");
914        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
915        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
916        try {
917            var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert());
918            console.info("logMessage calllog_update_test_1900: calllogId = " + calllogId);
919            expect(calllogId > 0).assertTrue();
920            var map = common.getCallLogInsertMap()
921            map.set("id", calllogId.toString());
922            await calllogQueryForALL(map, "calllog_update_test_1900");
923            await executeBatch();
924        } catch (error) {
925            console.info("logMessage calllog_update_test_1900: calllog insert error = " + error);
926            done();
927        }
928
929        async function executeBatch()
930        {
931            var phoneNumber = randomNum(8);
932            var updateValues = {"phone_number" : phoneNumber};
933            let condition = new dataShare.DataSharePredicates();
934            condition.equalTo("id", calllogId.toString());
935            dataShareHelper.executeBatch(URI_CALLLOG, [ {
936                uri : calllogUri,
937                type : featureAbility.DataAbilityOperationType.TYPE_UPDATE,
938                valuesBucket : updateValues,
939                predicates : condition,
940                expectedCount : 0,
941                PredicatesBackReferences : {},
942                interrupted : true,
943            } ],
944                (error, data) => {
945                    console.info("logMessage calllog_update_test_1900: executeBatch data = " + JSON.stringify(data));
946                    console.info("logMessage calllog_update_test_1900: data_3 = " + data);
947                    console.info("logMessage calllog_update_test_1900:  data_1= " + data[0].count);
948                    expect(data[0].count == 0).assertTrue();
949                    done();
950                });
951        }
952    });
953
954    /**
955     * @tc.number  calllog_Delete_test_2000
956     * @tc.name    calllog Delete
957     * @tc.desc    Function test
958     */
959    it("calllog_Delete_test_2000", 0, async function(done) {
960        console.info("--------logMessage calllog_Delete_test_2000 is starting!------------");
961        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
962        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
963        var phoneNumber = randomNum(5);
964        var insertValues = {"phone_number" : phoneNumber, "ring_duration" : "200"};
965        try {
966            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
967            var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues);
968            var calllogIdThree = await dataShareHelper.insert(calllogUri, insertValues);
969            expect(calllogId > 0).assertTrue();
970            expect(calllogIdTwo > 0).assertTrue();
971            expect(calllogIdThree > 0).assertTrue();
972            await DeleteCalllog();
973            done();
974        } catch (error) {
975            console.info("logMessage calllog_Delete_test_2000: calllog insert error = " + error);
976            done();
977        }
978
979        async function DeleteCalllog()
980        {
981            try {
982                let condition = new dataShare.DataSharePredicates();
983                condition.equalTo("id", calllogId.toString());
984                condition.or();
985                condition.equalTo("id", calllogIdTwo.toString());
986                condition.or();
987                condition.equalTo("id", calllogIdThree.toString());
988                var deleteCode = await dataShareHelper.delete(calllogUri, condition);
989                console.info("logMessage calllog_Delete_test_2000: deleteCode = " + deleteCode);
990                expect(deleteCode == 0).assertTrue();
991                var resultColumns = [];
992                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
993                expect(resultSet.rowCount == 0).assertTrue();
994                resultSet.close();
995            } catch (error) {
996                console.info("logMessage calllog_Delete_test_2000: delete error = " + error);
997                done();
998            }
999        }
1000    });
1001
1002    /**
1003     * @tc.number  calllog_Delete_test_2100
1004     * @tc.name    calllog Delete
1005     * @tc.desc    Function test
1006     */
1007    it("calllog_Delete_test_2100", 0, async function(done) {
1008        console.info("--------logMessage calllog_Delete_test_2100 is starting!------------");
1009        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1010        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1011        try {
1012            var calllogId = await dataShareHelper.insert(calllogUri, common.getCallLogInsert());
1013            console.info("logMessage calllog_Delete_test_2100: calllogId = " + calllogId);
1014            expect(calllogId > 0).assertTrue();
1015            var map = common.getCallLogInsertMap()
1016            map.set("id", calllogId.toString());
1017            await calllogQueryForALL(map, "calllog_Delete_test_2100");
1018            await calllogDelete("calllog_Delete_test_2100");
1019            let condition = new dataShare.DataSharePredicates();
1020            condition.equalTo("id", calllogId);
1021            var resultColumns = [];
1022            let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
1023            expect(resultSet.rowCount == 0).assertTrue();
1024            resultSet.close();
1025            done();
1026        } catch (error) {
1027            console.info("logMessage calllog_Delete_test_2100: calllog insert error = " + error);
1028            done();
1029        }
1030    });
1031
1032    /**
1033     * @tc.number  calllog_queryContains_test_2200
1034     * @tc.name    calllog Delete
1035     * @tc.desc    Function test
1036     */
1037    it("calllog_queryContains_test_2200", 0, async function(done) {
1038        console.info("--------logMessage calllog_queryContains_test_2200 is starting!------------");
1039        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1040        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1041        var phoneNumber = randomNum(17);
1042        var phoneNumber_Test = phoneNumber.substring(13,18);
1043        var insertValues = {"phone_number" : phoneNumber}
1044        try {
1045            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
1046            console.info("logMessage calllog_queryContains_test_2200: calllogId = " + calllogId);
1047            expect(calllogId > 0).assertTrue();
1048
1049            var resultColumns = [ "phone_number" ];
1050            let condition = new dataShare.DataSharePredicates();
1051            condition.contains("phone_number", phoneNumber_Test);
1052            let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
1053            if (resultSet.rowCount > 0) {
1054                if (resultSet.goToFirstRow()) {
1055                    do {
1056                        var phone = resultSet.getString(resultSet.getColumnIndex("phone_number"));
1057                        console.info("logMessage calllog_queryContains_test_2200: phone is = " + phone);
1058                        expect(phone == phoneNumber).assertEqual(true);
1059                    } while (resultSet.goToNextRow());
1060                }
1061            }
1062            resultSet.close();
1063            await calllogDelete();
1064            done();
1065        } catch (error) {
1066            console.info("logMessage calllog_queryContains_test_2200: calllog insert error = " + error);
1067            done();
1068        }
1069    });
1070
1071    /**
1072     * @tc.number  abnormal_calllog_update_test_2300
1073     * @tc.name    Update all call records, pass in a field that does not exist
1074     * @tc.desc    Function test
1075     */
1076    it("abnormal_calllog_update_test_2300", 0, async function(done) {
1077        console.info("--------logMessage abnormal_calllog_update_test_2300 is starting!------------");
1078        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1079        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1080        var phoneNumber = randomNum(10);
1081        var insertValues = {phone_number : phoneNumber, display_name : "name2300"}
1082        try {
1083            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
1084            var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues);
1085            expect(calllogId > 0).assertTrue();
1086            expect(calllogIdTwo > 0).assertTrue();
1087            await UpdateOneCalllog();
1088            done();
1089        } catch (error) {
1090            console.info("logMessage abnormal_calllog_update_test_2300: calllog insert error = " + error);
1091            done();
1092        }
1093        async function UpdateOneCalllog()
1094        {
1095            try {
1096                var insertValues = {phone_number : phoneNumber, display_names : "nameUpdateError2300"};
1097                 var condition =
1098                    new dataShare.DataSharePredicates();
1099                var updateCode = await dataShareHelper.update(calllogUri, insertValues, condition);
1100                console.info("logMessage abnormal_calllog_update_test_2300: updateCode = " + updateCode);
1101                expect(updateCode == -1).assertTrue();
1102                var map = new Map();
1103                map.set("id", calllogId.toString());
1104                map.set("display_name", "name2300");
1105                await calllogQueryForALL(map, "abnormal_calllog_update_test_2300");
1106                map.set("id", calllogIdTwo.toString());
1107                await calllogQueryForALL(map, "abnormal_calllog_update_test_2300");
1108                await calllogDelete("calllog_update_test_2300");
1109            } catch (error) {
1110                console.info("logMessage abnormal_calllog_update_test_2300: update error = " + error);
1111                done();
1112            }
1113        }
1114    });
1115
1116    /**
1117     * @tc.number  abnormal_calllog_query_test_2400
1118     * @tc.name    When querying call records based on combined conditions, incorrect field
1119     *             names and non-existent data are passed in
1120     * @tc.desc    Function test
1121     */
1122    it("abnormal_calllog_query_test_2400", 0, async function(done) {
1123        console.info("--------logMessage abnormal_calllog_query_test_2400 is starting!------------");
1124        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1125        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1126        var phoneNumber = randomNum(10);
1127        var insertValues = {phone_number : phoneNumber, display_name : "name2300"}
1128        try {
1129            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
1130            var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues);
1131            expect(calllogId > 0).assertTrue();
1132            expect(calllogIdTwo > 0).assertTrue();
1133            let condition = new dataShare.DataSharePredicates();
1134            condition.equalTo("id", calllogId.toString() + "ksks");
1135            var resultColumns = [ "display_names" ];
1136            let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
1137            console.info("abnormal_calllog_query_test_2400: resultSet.rowCount = " + resultSet.rowCount);
1138            expect(resultSet.rowCount == -1).assertTrue();
1139            resultSet.close();
1140            await calllogDelete("abnormal_calllog_query_test_2400");
1141            done();
1142        } catch (error) {
1143            console.info("logMessage abnormal_calllog_query_test_2400: calllog insert error = " + error);
1144            done();
1145        }
1146    });
1147
1148    /**
1149     * @tc.number  abnormal_calllog_query_test_2500
1150     * @tc.name    When querying all call records based on combined conditions, incorrect field
1151     *             names and non-existent data are passed in
1152     * @tc.desc    Function test
1153     */
1154    it("abnormal_calllog_query_test_2500", 0, async function(done) {
1155        console.info("--------logMessage abnormal_calllog_query_test_2500 is starting!------------");
1156        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1157        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1158        var phoneNumber = randomNum(10);
1159        var insertValues = {phone_number : phoneNumber, display_name : "name2300"}
1160        try {
1161            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
1162            console.info('abnormal_calllog_query_test_2500 calllogId = ' + calllogId);
1163            var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues);
1164            console.info('abnormal_calllog_query_test_2500 calllogIdTwo = ' + calllogIdTwo);
1165            expect(calllogId > 0).assertTrue();
1166            expect(calllogIdTwo > 0).assertTrue();
1167            let condition = new dataShare.DataSharePredicates();
1168            var resultColumns = [ "display_names" ];
1169            let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
1170            console.info('abnormal_calllog_query_test_2500 resultSet.goToFirstRow() = ' + resultSet.goToFirstRow());
1171            console.info('abnormal_calllog_query_test_2500 resultSet.rowCount = ' + resultSet.rowCount);
1172            expect(resultSet.goToFirstRow() == false).assertTrue();
1173            resultSet.close();
1174            await calllogDelete("abnormal_calllog_query_test_2500");
1175            done();
1176        } catch (error) {
1177            console.info("logMessage abnormal_calllog_query_test_2500: calllog insert error = " + error);
1178            done();
1179        }
1180    });
1181
1182    /**
1183     * @tc.number  abnormal_calllog_delete_test_2600
1184     * @tc.name    Batch call records are added, and some of them fail, depending on the processing logic
1185     * @tc.desc    Function test
1186     */
1187    it("abnormal_calllog_delete_test_2600", 0, async function(done) {
1188        console.info("--------logMessage abnormal_calllog_delete_test_2600 is starting!------------");
1189        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1190        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1191        var phoneNumber = randomNum(10);
1192        var insertValues = {phone_number : phoneNumber, display_name : "name2300"}
1193        try {
1194            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
1195            var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues);
1196            expect(calllogId > 0).assertTrue();
1197            expect(calllogIdTwo > 0).assertTrue();
1198        } catch (error) {
1199            console.info("logMessage abnormal_calllog_delete_test_2600: calllog insert error = " + error);
1200            done();
1201        }
1202        let condition = new dataShare.DataSharePredicates();
1203        condition.equalTo("ids", calllogIdTwo.toString());
1204        condition.or();
1205        condition.equalTo("id", calllogId.toString());
1206        var code = await dataShareHelper.delete(calllogUri, condition);
1207        console.info("logMessage abnormal_calllog_delete_test_2600: code = " + code);
1208        expect(code == -1).assertTrue();
1209        condition.clear();
1210        var resultColumns = [];
1211        let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
1212        var count = 2;
1213        expect(resultSet.rowCount == count).assertTrue();
1214        resultSet.close();
1215        await calllogDelete("abnormal_calllog_delete_test_2600");
1216        done();
1217    });
1218
1219    /**
1220     * @tc.number  abnormal_calllog_delete_test_2700
1221     * @tc.name    When batch call records are modified, the wrong field or table name is passed in
1222     * @tc.desc    Function test
1223     */
1224    it("abnormal_calllog_delete_test_2700", 0, async function(done) {
1225        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1226        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1227        var phoneNumber = randomNum(14);
1228        var insertValues = {phone_number : phoneNumber, display_name : "name2700"}
1229        try {
1230            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
1231            var calllogIdTwo = await dataShareHelper.insert(calllogUri, insertValues);
1232            expect(calllogId > 0).assertTrue();
1233            expect(calllogIdTwo > 0).assertTrue();
1234            await UpdateOneCalllog();
1235            done();
1236        } catch (error) {
1237            console.info("logMessage abnormal_calllog_delete_test_2700: calllog insert error = " + error);
1238            done();
1239        }
1240        async function UpdateOneCalllog()
1241        {
1242            try {
1243                var insertValues = {phone_number : phoneNumber, display_names : "nameUpdateError2700"};
1244                let condition = new dataShare.DataSharePredicates();
1245                condition.equalTo("ids", calllogIdTwo.toString());
1246                condition.or();
1247                condition.equalTo("id", calllogId.toString());
1248                var updateCode = await dataShareHelper.update(calllogUri, insertValues, condition);
1249                console.info("logMessage abnormal_calllog_delete_test_2700: updateCode = " + updateCode);
1250                expect(updateCode == -1).assertTrue();
1251                var map = new Map();
1252                map.set("id", calllogId.toString());
1253                map.set("display_name", "name2700");
1254                await calllogQueryForALL(map, "abnormal_calllog_delete_test_2700");
1255                map.set("id", calllogIdTwo.toString());
1256                await calllogQueryForALL(map, "abnormal_calllog_delete_test_2700");
1257                await calllogDelete("abnormal_calllog_delete_test_2700");
1258            } catch (error) {
1259                console.info("logMessage abnormal_calllog_delete_test_2700: update error = " + error);
1260                done();
1261            }
1262        }
1263    });
1264
1265    /**
1266     * @tc.number  abnormal_calllog_query_test_2800
1267     * @tc.name    Fuzzy search query based on mobile phone number
1268     * @tc.desc    Function test
1269     */
1270    it("abnormal_calllog_query_test_2800", 0, async function(done) {
1271        console.info("------------abnormal_calllog_query_test_2800 is starting!-----------");
1272        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1273        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1274        var phoneNumber = randomNum(8);
1275        var phoneNumber_Test = phoneNumber.substring(0,3);
1276        var insertValues = {"phone_number" : phoneNumber};
1277        try {
1278            var calllogId = await dataShareHelper.insert(calllogUri, insertValues);
1279            console.info("logMessage abnormal_calllog_query_test_2800: calllogId = " + calllogId);
1280            expect(calllogId > 0).assertTrue();
1281            await QueryByStartsWithPhoneNumberError();
1282            await calllogDelete("abnormal_calllog_query_test_2800");
1283            done();
1284        } catch (error) {
1285            console.info("logMessage abnormal_calllog_query_test_2800: calllog insert error = " + error);
1286            done();
1287        }
1288
1289        async function QueryByStartsWithPhoneNumberError()
1290        {
1291            var resultColumns = [ "id", "phone_number" ];
1292            let condition = new dataShare.DataSharePredicates();
1293            condition.like("phone_numbers", phoneNumber_Test + "%");
1294            try {
1295                let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition);
1296                console.info("logMessage abnormal_calllog_query_test_2800: resultSet.rowCount = " + resultSet.rowCount);
1297                expect(resultSet.rowCount == -1).assertTrue();
1298                resultSet.close();
1299            } catch (error) {
1300                console.info("logMessage abnormal_calllog_query_test_2800: query error = " + error);
1301                done();
1302            }
1303        }
1304    });
1305
1306    afterAll(async function() {
1307        let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG);
1308        console.info('callllog afterAll logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1309        let condition = new dataShare.DataSharePredicates();
1310        condition.greaterThan("id", "0");
1311        var deleteCode = await dataShareHelper.delete(calllogUri, condition);
1312        console.info('callllog afterAll end logMessage deleteCode = ' + deleteCode);
1313    });
1314
1315    function randomNum (num) {
1316        let number = toString(Math.floor(Math.random() * (9 * Math.pow(10, num))) + (1 * Math.pow(10, num)));
1317        return number ;
1318    }
1319})
1320