• 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 rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
21const contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data";
22
23const autoMergeUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/auto_merge";
24const splitUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/split_contact";
25const manualMergeUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/manual_merge";
26const uriQueryMergeList = "datashare:///com.ohos.contactsdataability/contacts/raw_contact/query_merge_list";
27const deletedUri = "datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact";
28
29describe('ContactMergeTest', function() {
30    console.info("ContactMergeTest start!");
31
32    var sleep_two = 2000;
33    var sleep_one = 1000;
34    var sleep_three = 3000;
35    var result_two = 2;
36    var result_three = 3;
37    var array_two = 2;
38
39    function sleep(numberMillis)
40    {
41        var now = new Date();
42        var exitTime = now.getTime() + numberMillis;
43        while (true) {
44            now = new Date();
45            if (now.getTime() > exitTime)
46                return;
47        }
48    }
49    async function ContactDataInsert1(dataShareHelper, rawContactId1)
50    {
51        var contactDataValues = {"raw_contact_id" : rawContactId1, "content_type" : "name", "detail_info" : "xiaoli"};
52        try {
53            var contactDataId1 = await dataShareHelper.insert(contactDataUri, contactDataValues);
54            sleep(sleep_one);
55            console.info("logMessage contact_auto_merge_and_spilt_test_100: contactDataId1 = " + contactDataId1);
56            expect(contactDataId1 > 0).assertTrue();
57        } catch (error) {
58            console.info('logMessage contact_auto_merge_and_spilt_test_100: contact_data_1 insert error = ' + error);
59        }
60    }
61
62    async function ContactDataInsert2(dataShareHelper, rawContactId2)
63    {
64        var contactDataValues = {"raw_contact_id" : rawContactId2, "content_type" : "name", "detail_info" : "xiaoli"};
65        try {
66            var contactDataId2 = await dataShareHelper.insert(contactDataUri, contactDataValues);
67            sleep(sleep_one);
68            console.info("logMessage contact_auto_merge_and_spilt_test_100: contactDataId2 = " + contactDataId2);
69            expect(contactDataId2 > 0).assertTrue();
70        } catch (error) {
71            console.info('logMessage contact_auto_merge_and_spilt_test_100: contact_data_2 insert error = ' + error);
72        }
73    }
74
75    async function AutoMerge(dataShareHelper, rawContactId1)
76    {
77        let condition = new dataShare.DataSharePredicates();
78        var updateValues = {};
79        try {
80            var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
81            console.info("logMessage contact_auto_merge_and_spilt_test_100: autoMergeCode = " + autoMergeCode);
82            expect(autoMergeCode == 0).assertTrue();
83            var map = new Map();
84            map.set("id", rawContactId1.toString());
85            await ContactMergeQuery(map, "contact_auto_merge_and_spilt_test_100", result_two);
86            sleep(sleep_two);
87            await ContactSplit(dataShareHelper, rawContactId1);
88            await deleteAll(rawContactUri, "contact_auto_merge_and_spilt_test_100");
89            await deleteAll(contactDataUri, "contact_auto_merge_and_spilt_test_100");
90        } catch (error) {
91            console.info("logMessage contact_auto_merge_and_spilt_test_100: auto_merge error = " + error);
92        }
93    }
94
95    async function ContactSplit(dataShareHelper, rawContactId1)
96    {
97        var condition2 = new dataShare.DataSharePredicates();
98        var array = [ rawContactId1.toString() ];
99        condition2.in("raw_contact_id", array);
100        var updateValues2 = {};
101        try {
102            var splitCode = await dataShareHelper.update(splitUri, updateValues2, condition2);
103            sleep(sleep_three);
104            console.info('logMessage contact_auto_merge_and_spilt_test_100 splitCode = ' + splitCode);
105            expect(splitCode == 0).assertTrue();
106            var map = new Map();
107            map.set("id", rawContactId1.toString());
108            await ContactMergeQuery(map, "contact_auto_merge_and_spilt_test_100", 1);
109        } catch (error) {
110            console.info('logMessage contact_auto_merge_and_spilt_test_100 split error = ' + error);
111        }
112    }
113
114    async function deleteAll(uri, tag)
115    {
116        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
117        let condition = new dataShare.DataSharePredicates();
118        condition.greaterThan("id", "0");
119        var deleteCode = await dataShareHelper.delete(uri, condition);
120        console.info(tag + ': deleteAll deleteCode = ' + deleteCode);
121        expect(deleteCode == 0).assertTrue();
122    }
123
124    async function ContactMergeQuery(map, tag, size)
125    {
126        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
127        console.info(tag + ' : ContactMergeQuery start ! dataShareHelper = ' + dataShareHelper);
128        var resultColumns = [ "contact_id" ];
129        let condition = new dataShare.DataSharePredicates();
130        console.info(tag + ' : map_id  = ' + map.get("id"));
131        condition.equalTo("id", map.get("id"));
132        try {
133            var resultSetID = await dataShareHelper.query(rawContactUri, resultColumns, condition);
134            sleep(sleep_one);
135            var conatctID;
136            if (resultSetID.goToFirstRow()) {
137                do {
138                    conatctID = resultSetID.getString(resultSetID.getColumnIndex("contact_id"));
139                    console.info(tag + ' : contact_id  = ' + conatctID);
140                } while (resultSetID.goToNextRow());
141            }
142            resultSetID.close();
143            var pre = new dataShare.DataSharePredicates();
144            pre.equalTo("contact_id", conatctID);
145            var newResultColumns = [];
146            var resultSet = await dataShareHelper.query(rawContactUri, newResultColumns, pre);
147            sleep(sleep_one);
148            console.info(tag + ' : ContactMergeQuery start ! rowCount = ' + resultSet.rowCount);
149            expect(resultSet.rowCount == size).assertEqual(true);
150            resultSet.close();
151        } catch (error) {
152            console.info(tag + " : logMessage ContactMergeQuery: error = " + error);
153        }
154    }
155
156    async function updateContactData(updateDataValue, contactDataId, testName)
157    {
158        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
159        var updateValues = {"detail_info" : updateDataValue};
160        let condition = new dataShare.DataSharePredicates();
161        condition.equalTo("id", contactDataId.toString());
162        var code = await dataShareHelper.update(contactDataUri, updateValues, condition);
163        console.info(testName + "  updateContactData: code = " + code);
164        sleep(sleep_three);
165    }
166
167    async function insertContactData(dataShareHelper, rawContactId, detailInfo, types, tag)
168    {
169        var size = detailInfo.length;
170        for (var i = 0; i < size; i++) {
171            var contactDataValues = {
172                "raw_contact_id" : rawContactId.toString(),
173                "content_type" : types[i],
174                "detail_info" : detailInfo[i]
175            };
176            try {
177                var contactDataId = await dataShareHelper.insert(contactDataUri, contactDataValues);
178                sleep(sleep_two);
179                expect(contactDataId > 0).assertTrue();
180                console.info(tag + ' logMessage :  insert contactDataId = ' + contactDataId);
181            } catch (error) {
182                console.info('logMessage : contact_data_1 insert error = ' + error);
183            }
184        }
185    }
186
187    async function insertContactDataSingle(dataShareHelper, rawContactId, detailInfo, type)
188    {
189        var size = detailInfo.length;
190        var contactDataValues = {"raw_contact_id" : rawContactId, "content_type" : type, "detail_info" : detailInfo};
191        try {
192            var contactDataId1 = await dataShareHelper.insert(contactDataUri, contactDataValues);
193            sleep(sleep_one);
194            expect(contactDataId1 > 0).assertTrue();
195        } catch (error) {
196            console.info('logMessage : contact_data_1 insert error = ' + error);
197        }
198        return contactDataId1;
199    }
200
201    async function ManualMergeList(dataShareHelper, rawContactList, testName)
202    {
203        var condition2 = new dataShare.DataSharePredicates();
204        condition2.in("raw_contact_id", rawContactList);
205        var updateValues2 = {};
206        try {
207            var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2);
208            sleep(sleep_one);
209            console.info("logMessage " + testName + " ManualMergeCode = " + ManualMergeCode);
210            expect(ManualMergeCode == 0).assertTrue();
211            var map = new Map();
212            map.set("id", rawContactList[0].toString());
213            await ContactMergeQuery(map, testName, rawContactList.length);
214            await deleteAll(rawContactUri, testName);
215            await deleteAll(contactDataUri, testName);
216        } catch (error) {
217            console.info("logMessage " + testName + " manual_merge error = " + error);
218        }
219    }
220
221    /**
222     * @tc.number  contact_autoMerge_and_spilt_test_100
223     * @tc.name    Two contacts without mobile phone number with the same name are automatically merged and split
224     * @tc.desc    Function test
225     */
226    it("contact_autoMerge_and_spilt_test_100", 0, async function(done) {
227        console.info("------logMessage contact_autoMerge_and_spilt_test_100 is starting!-----");
228        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
229        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
230
231        var insertRawContactValues1 = {"display_name" : "xiaoli"};
232        try {
233            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
234            sleep(sleep_one);
235            console.info("logMessage contact_autoMerge_and_spilt_test_100: rawContactId1 = " + rawContactId1);
236            expect(rawContactId1 > 0).assertTrue();
237            await ContactDataInsert1(dataShareHelper, rawContactId1);
238        } catch (error) {
239            console.info('logMessage contact_autoMerge_and_spilt_test_100: raw_contact_1 insert error = ' + error);
240            done();
241        }
242
243        var insertRawContactValues2 = {"display_name" : "xiaoli"};
244        try {
245            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
246            sleep(sleep_one);
247            console.info("logMessage contact_autoMerge_and_spilt_test_100: rawContactId2 = " + rawContactId2);
248            expect(rawContactId2 > 0).assertTrue();
249            await ContactDataInsert2(dataShareHelper, rawContactId2);
250        } catch (error) {
251            console.info('logMessage contact_autoMerge_and_spilt_test_100: raw_contact_2 insert error = ' + error);
252            done();
253        }
254        await AutoMerge(dataShareHelper, rawContactId1);
255        done();
256    });
257
258    /**
259     * @tc.number  contact_manualMerge_test_200
260     * @tc.name    Two contacts with the same name, one with a mobile phone number and the other without a mobile phone
261     * number, call the manual merge interface
262     * @tc.desc    Function test
263     */
264    it("contact_manualMerge_test_200", 0, async function(done) {
265        console.info("------logMessage contact_manualMerge_test_200 is starting!-----");
266        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
267        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
268
269        var insertRawContactValues1 = {"display_name" : "xiaoming"};
270        try {
271            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
272            sleep(sleep_one);
273            console.info("logMessage contact_manualMerge_test_200: rawContactId1 = " + rawContactId1);
274            expect(rawContactId1 > 0).assertTrue();
275            await manualMergeDataInsert(dataShareHelper, rawContactId1);
276        } catch (error) {
277            console.info('logMessage contact_manualMerge_test_200: raw_contact_1 insert error = ' + error);
278            done();
279        }
280
281        var insertRawContactValues2 = {"display_name" : "xiaoming"};
282        try {
283            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
284            sleep(sleep_one);
285            console.info("logMessage contact_manualMerge_test_200: rawContactId2 = " + rawContactId2);
286            expect(rawContactId2 > 0).assertTrue();
287            await manualMergeDataInsertTwo(dataShareHelper, rawContactId2);
288        } catch (error) {
289            console.info('logMessage contact_manualMerge_test_200: raw_contact_2 insert error = ' + error);
290            done();
291        }
292        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ];
293        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_2000");
294        done();
295    });
296
297    async function manualMergeDataInsert(dataShareHelper, rawContactId1)
298    {
299        var contactDataValuesOne = {
300            "raw_contact_id" : rawContactId1,
301            "content_type" : "name",
302            "detail_info" : "xiaoming"
303        };
304        var contactDataValuesTwo = {
305            "raw_contact_id" : rawContactId1,
306            "content_type" : "phone",
307            "detail_info" : "123456789",
308        };
309        var listAddBluk = [];
310        listAddBluk[0] = contactDataValuesOne;
311        listAddBluk[1] = contactDataValuesTwo;
312        try {
313            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk);
314            sleep(sleep_one);
315            console.info("logMessage contact_manualMerge_test_200: batchInsertCode = " + batchInsertCode);
316            expect(batchInsertCode == 0).assertTrue();
317        } catch (error) {
318            console.info("logMessage contact_manualMerge_test_200: batch insert error = " + error)
319        }
320    }
321
322    async function manualMergeDataInsertTwo(dataShareHelper, rawContactId2)
323    {
324        var contactDataValues = {"raw_contact_id" : rawContactId2, "content_type" : "name", "detail_info" : "xiaoming"};
325        try {
326            var contactDataId = await dataShareHelper.insert(contactDataUri, contactDataValues);
327            sleep(sleep_one);
328            console.info("logMessage contact_manualMerge_test_200: contactDataId = " + contactDataId);
329            expect(contactDataId > 0).assertTrue();
330        } catch (error) {
331            console.info("logMessage contact_manualMerge_test_200: contact_data_2 insert error = " + error)
332        }
333    }
334
335    /**
336     * @tc.number  contact_autoMerge_test_300
337     * @tc.name    Two contacts with the same name have a mobile phone number, and the mobile phone numbers are the
338     * same. Call the automatic merge interface
339     * @tc.desc    Function test
340     */
341    it("contact_autoMerge_test_300", 0, async function(done) {
342        console.info("------logMessage contact_autoMerge_test_300 is starting!-----");
343        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
344        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
345
346        var insertRawContactValues1 = {"display_name" : "xiaohong"};
347        try {
348            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
349            sleep(sleep_one);
350            console.info("logMessage contact_autoMerge_test_300: rawContactId1 = " + rawContactId1);
351            expect(rawContactId1 > 0).assertTrue();
352            await autoMergeDataInsert(dataShareHelper, rawContactId1);
353        } catch (error) {
354            console.info('logMessage contact_autoMerge_test_300: raw_contact_1 insert error = ' + error);
355            done();
356        }
357
358        var insertRawContactValues2 = {"display_name" : "xiaohong"};
359        try {
360            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
361            sleep(sleep_one);
362            console.info("logMessage contact_autoMerge_test_300: rawContactId2 = " + rawContactId2);
363            expect(rawContactId2 > 0).assertTrue();
364            await autoMergeDataInsertTwo(dataShareHelper, rawContactId2);
365        } catch (error) {
366            console.info('logMessage contact_autoMerge_test_300: raw_contact_2 insert error = ' + error);
367            done();
368        }
369
370        await AutoMerger(dataShareHelper, rawContactId1, "contact_autoMerge_test_300");
371        done();
372    });
373
374    async function autoMergeDataInsert(dataShareHelper, rawContactId1)
375    {
376        var contactDataValuesOne = {
377            "raw_contact_id" : rawContactId1,
378            "content_type" : "name",
379            "detail_info" : "xiaohong"
380        };
381        var contactDataValuesTwo = {
382            "raw_contact_id" : rawContactId1,
383            "content_type" : "phone",
384            "detail_info" : "123465",
385        };
386        var listAddBluk = [];
387        listAddBluk[0] = contactDataValuesOne;
388        listAddBluk[1] = contactDataValuesTwo;
389        try {
390            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk);
391            sleep(sleep_one);
392            console.info("logMessage contact_autoMerge_test_300: batchInsertCode = " + batchInsertCode);
393            expect(batchInsertCode == 0).assertTrue();
394        } catch (error) {
395            console.info("logMessage contact_autoMerge_test_300: batch insert1 error = " + error)
396        }
397    }
398
399    async function autoMergeDataInsertTwo(dataShareHelper, rawContactId2)
400    {
401        var contactDataValuesThree = {
402            "raw_contact_id" : rawContactId2,
403            "content_type" : "name",
404            "detail_info" : "xiaohong"
405        };
406        var contactDataValuesFour = {
407            "raw_contact_id" : rawContactId2,
408            "content_type" : "phone",
409            "detail_info" : "123465",
410        };
411        var listAddBluk2 = [];
412        listAddBluk2[0] = contactDataValuesThree;
413        listAddBluk2[1] = contactDataValuesFour;
414        try {
415            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk2);
416            sleep(sleep_one);
417            console.info("logMessage contact_autoMerge_test_300: batchInsertCode = " + batchInsertCode);
418            expect(batchInsertCode == 0).assertTrue();
419        } catch (error) {
420            console.info("logMessage contact_autoMerge_test_300: batch insert2 error = " + error)
421        }
422    }
423
424    async function AutoMerger(dataShareHelper, rawContactId1, testName)
425    {
426        let condition = new dataShare.DataSharePredicates();
427        var updateValues = {};
428        try {
429            var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
430            sleep(sleep_one);
431            console.info("logMessage  " + testName + "autoMergeCode = " + autoMergeCode);
432            expect(autoMergeCode == 0).assertTrue();
433            var map = new Map();
434            map.set("id", rawContactId1.toString());
435            await ContactMergeQuery(map, testName, result_two);
436            await deleteAll(rawContactUri, testName);
437            await deleteAll(contactDataUri, testName);
438        } catch (error) {
439            console.info("logMessage " + testName + "auto_merge error =" + error);
440        }
441    }
442
443    async function AutoNotMerger(dataShareHelper, rawContactId1, testName)
444    {
445        let condition = new dataShare.DataSharePredicates();
446        var updateValues = {};
447        try {
448            sleep(sleep_two);
449            var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
450            console.info("logMessage  " + testName + "autoMergeCode = " + autoMergeCode);
451            expect(autoMergeCode == -1).assertTrue();
452            var map = new Map();
453            map.set("id", rawContactId1.toString());
454            await ContactMergeQuery(map, testName, 1);
455            await deleteAll(rawContactUri, testName);
456            await deleteAll(contactDataUri, testName);
457        } catch (error) {
458            console.info("logMessage " + testName + "auto_merge error =" + error);
459        }
460    }
461
462    /**
463     * @tc.number  contact_manualMerge_test_400
464     * @tc.name    Two contacts with the same name have a mobile phone number, and the mobile phone numbers are
465     * different. Call the manual merge interface
466     * @tc.desc    Function test
467     */
468    it("contact_manualMerge_test_400", 0, async function(done) {
469        console.info("------logMessage contact_manualMerge_test_400 is starting!-----");
470        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
471        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
472
473        var insertRawContactValues1 = {"display_name" : "xiaozhang"};
474        try {
475            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
476            sleep(sleep_one);
477            console.info("logMessage contact_manualMerge_test_400: rawContactId1 = " + rawContactId1);
478            expect(rawContactId1 > 0).assertTrue();
479            await noequalPhoneDataInsert(dataShareHelper, rawContactId1)
480        } catch (error) {
481            console.info('logMessage contact_manualMerge_test_400: raw_contact_1 insert error = ' + error);
482            done();
483        }
484
485        var insertRawContactValues2 = {"display_name" : "xiaozhang"};
486        try {
487            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
488            sleep(sleep_one);
489            console.info("logMessage contact_manualMerge_test_400: rawContactId2 = " + rawContactId2);
490            expect(rawContactId2 > 0).assertTrue();
491            await noequalPhoneDataInsertTwo(dataShareHelper, rawContactId2)
492        } catch (error) {
493            console.info('logMessage contact_manualMerge_test_400: raw_contact_2 insert error = ' + error);
494            done();
495        }
496
497        await noequalManualMerge(dataShareHelper, rawContactId1, rawContactId2);
498        done();
499    });
500
501    async function noequalPhoneDataInsert(dataShareHelper, rawContactId1)
502    {
503        var contactDataValuesOne = {
504            "raw_contact_id" : rawContactId1,
505            "content_type" : "name",
506            "detail_info" : "xiaozhang"
507        };
508        var contactDataValuesTwo = {
509            "raw_contact_id" : rawContactId1,
510            "content_type" : "phone",
511            "detail_info" : "147852",
512        };
513        var listAddBluk = [];
514        listAddBluk[0] = contactDataValuesOne;
515        listAddBluk[1] = contactDataValuesTwo;
516        try {
517            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk);
518            sleep(sleep_one);
519            console.info("logMessage contact_manualMerge_test_400: batchInsertCode = " + batchInsertCode);
520            expect(batchInsertCode == 0).assertTrue();
521        } catch (error) {
522            console.info("logMessage contact_manualMerge_test_400: batch insert1 error = " + error)
523        }
524    }
525
526    async function noequalPhoneDataInsertTwo(dataShareHelper, rawContactId2)
527    {
528        var contactDataValuesThree = {
529            "raw_contact_id" : rawContactId2,
530            "content_type" : "name",
531            "detail_info" : "xiaozhang"
532        };
533        var contactDataValuesFour = {
534            "raw_contact_id" : rawContactId2,
535            "content_type" : "phone",
536            "detail_info" : "996369",
537        };
538        var listAddBluk2 = [];
539        listAddBluk2[0] = contactDataValuesThree;
540        listAddBluk2[1] = contactDataValuesFour;
541        try {
542            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk2);
543            sleep(sleep_one);
544            console.info("logMessage contact_manualMerge_test_400: batchInsertCode = " + batchInsertCode);
545            expect(batchInsertCode == 0).assertTrue();
546        } catch (error) {
547            console.info("logMessage contact_manualMerge_test_400: batch insert2 error = " + error)
548        }
549    }
550
551    async function noequalManualMerge(dataShareHelper, rawContactId1, rawContactId2)
552    {
553        var condition2 = new dataShare.DataSharePredicates();
554        var id = [ rawContactId1.toString(), rawContactId2.toString() ];
555        condition2.in("raw_contact_id", id);
556        var updateValues2 = {};
557        try {
558            var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2);
559            sleep(sleep_one);
560            console.info("logMessage contact_manualMerge_test_400 ManualMergeCode = " + ManualMergeCode);
561            expect(ManualMergeCode == 0).assertTrue();
562            var map = new Map();
563            map.set("id", rawContactId1.toString());
564            await ContactMergeQuery(map, "contact_manualMerge_test_400", result_two);
565            await deleteAll(rawContactUri, "contact_manualMerge_test_400");
566            await deleteAll(contactDataUri, "contact_manualMerge_test_400");
567        } catch (error) {
568            console.info("logMessage contact_manualMerge_test_400 manual_merge error = " + error);
569        }
570    }
571
572    /**
573     * @tc.number  contact_manualMerge_test_500
574     * @tc.name    Two contacts with the same name, one with two mobile phone numbers and the other without mobile phone
575     * numbers, call the manual merge interface
576     * @tc.desc    Function test
577     */
578    it("contact_manualMerge_test_500", 0, async function(done) {
579        console.info("------logMessage contact_manualMerge_test_500 is starting!-----");
580        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
581        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
582
583        var insertRawContactValues1 = {"display_name" : "xiaozhou"};
584        try {
585            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
586            sleep(sleep_one);
587            console.info("logMessage contact_manualMerge_test_500: rawContactId1 = " + rawContactId1);
588            expect(rawContactId1 > 0).assertTrue();
589            await manualDataInsert(dataShareHelper, rawContactId1)
590        } catch (error) {
591            console.info('logMessage contact_manualMerge_test_500: raw_contact_1 insert error = ' + error);
592            done();
593        }
594
595        var insertRawContactValues2 = {"display_name" : "xiaozhou"};
596        try {
597            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
598            sleep(sleep_one);
599            console.info("logMessage contact_manualMerge_test_500: rawContactId2 = " + rawContactId2);
600            expect(rawContactId2 > 0).assertTrue();
601            await manualDataInsertTwo(dataShareHelper, rawContactId2)
602        } catch (error) {
603            console.info('logMessage contact_manualMerge_test_500: raw_contact_2 insert error = ' + error);
604            done();
605        }
606        await hasOneNoPhoneManualMerge(dataShareHelper, rawContactId1, rawContactId2);
607        done();
608    });
609
610    async function manualDataInsert(dataShareHelper, rawContactId1)
611    {
612        var contactDataValuesOne = {
613            "raw_contact_id" : rawContactId1,
614            "content_type" : "name",
615            "detail_info" : "xiaozhou"
616        };
617        var contactDataValuesTwo = {
618            "raw_contact_id" : rawContactId1,
619            "content_type" : "phone",
620            "detail_info" : "123456789",
621        };
622        var contactDataValuesThree = {
623            "raw_contact_id" : rawContactId1,
624            "content_type" : "phone",
625            "detail_info" : "996632",
626        };
627        var listAddBluk = [];
628        listAddBluk[0] = contactDataValuesOne;
629        listAddBluk[1] = contactDataValuesTwo;
630        listAddBluk[array_two] = contactDataValuesThree;
631        try {
632            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk);
633            sleep(sleep_one);
634            console.info("logMessage contact_manualMerge_test_500: batchInsertCode = " + batchInsertCode);
635            expect(batchInsertCode == 0).assertTrue();
636        } catch (error) {
637            console.info("logMessage contact_manualMerge_test_500: batch insert1 error = " + error)
638        }
639    }
640
641    async function manualDataInsertTwo(dataShareHelper, rawContactId2)
642    {
643        var contactDataValuesFour = {
644            "raw_contact_id" : rawContactId2,
645            "content_type" : "name",
646            "detail_info" : "xiaozhou"
647        };
648        try {
649            var contactDataId = await dataShareHelper.insert(contactDataUri, contactDataValuesFour);
650            sleep(sleep_one);
651            console.info("logMessage contact_manualMerge_test_500: contactDataId = " + contactDataId);
652            expect(contactDataId > 0).assertTrue();
653        } catch (error) {
654            console.info("logMessage contact_manualMerge_test_500: contact_data insert error = " + error)
655        }
656    }
657
658    async function hasOneNoPhoneManualMerge(dataShareHelper, rawContactId1, rawContactId2)
659    {
660        var condition2 = new dataShare.DataSharePredicates();
661        var id = [ rawContactId1.toString(), rawContactId2.toString() ];
662        condition2.in("raw_contact_id", id);
663        var updateValues2 = {};
664        try {
665            var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2);
666            sleep(sleep_one);
667            console.info("logMessage contact_manualMerge_test_500 ManualMergeCode = " + ManualMergeCode);
668            expect(ManualMergeCode == 0).assertTrue();
669            var map = new Map();
670            map.set("id", rawContactId1.toString());
671            await ContactMergeQuery(map, "contact_manualMerge_test_500", result_two);
672            await deleteAll(rawContactUri, "contact_manualMerge_test_500");
673            await deleteAll(contactDataUri, "contact_manualMerge_test_500");
674        } catch (error) {
675            console.info("logMessage contact_manualMerge_test_500 manual_merge error = " + error);
676        }
677    }
678
679    /**
680     * @tc.number  contact_autoMerge_test_600
681     * @tc.name    Batch add contacts, then call auto merge interface.
682     * @tc.desc    Function test
683     */
684    it("contact_autoMerge_test_600", 0, async function(done) {
685        console.info("------logMessage contact_autoMerge_test_600 is starting!-----");
686        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
687        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
688        try {
689            var insertRawContactValues1 = {"display_name" : "xiaoliu"};
690            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
691            sleep(sleep_one);
692            console.info("logMessage contact_autoMerge_test_600: rawContactId1 = " + rawContactId1);
693            expect(rawContactId1 > 0).assertTrue();
694        } catch (error) {
695            console.info('logMessage contact_autoMerge_test_600: raw_contact_1 insert error = ' + error);
696            done();
697        }
698
699        try {
700            var insertRawContactValues2 = {"display_name" : "xiaoliu"};
701            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
702            sleep(sleep_one);
703            console.info("logMessage contact_autoMerge_test_600: rawContactId2 = " + rawContactId2);
704            expect(rawContactId2 > 0).assertTrue();
705        } catch (error) {
706            console.info('logMessage contact_autoMerge_test_600: raw_contact_2 insert error = ' + error);
707            done();
708        }
709
710        try {
711            var insertRawContactValues3 = {"display_name" : "xiaoliu"};
712            var rawContactId3 = await dataShareHelper.insert(rawContactUri, insertRawContactValues3);
713            sleep(sleep_one);
714            console.info("logMessage contact_autoMerge_test_600: rawContactId3 = " + rawContactId3);
715            expect(rawContactId3 > 0).assertTrue();
716        } catch (error) {
717            console.info('logMessage contact_autoMerge_test_600: raw_contact_3 insert error = ' + error);
718            done();
719        }
720
721        await ContactDataBatchInsert();
722        done();
723    });
724
725    async function ContactDataBatchInsert(dataShareHelper, rawContactId1, rawContactId2, rawContactId3)
726    {
727        var contactDataValues1 = {"raw_contact_id" : rawContactId1, "content_type" : "name", "detail_info" : "xiaoliu"};
728        var contactDataValues2 = {"raw_contact_id" : rawContactId2, "content_type" : "name", "detail_info" : "xiaoliu"};
729        var contactDataValues3 = {"raw_contact_id" : rawContactId3, "content_type" : "name", "detail_info" : "xiaoliu"};
730        var listAddBluk = [];
731        listAddBluk[0] = contactDataValues1;
732        listAddBluk[1] = contactDataValues2;
733        listAddBluk[array_two] = contactDataValues3;
734        try {
735            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk);
736            sleep(sleep_two);
737            console.info("logMessage contact_autoMerge_test_600: batchInsertCode = " + batchInsertCode);
738            expect(batchInsertCode == 0).assertTrue();
739            await threeAutoMerger();
740            await deleteAll(rawContactUri, "contact_autoMerge_test_600");
741            await deleteAll(contactDataUri, "contact_autoMerge_test_600");
742        } catch (error) {
743            console.info('logMessage contact_autoMerge_test_600: raw_contact insert error = ' + error);
744        }
745    }
746
747    async function threeAutoMerger(dataShareHelper, rawContactId1)
748    {
749        let condition = new dataShare.DataSharePredicates();
750        var updateValues = {};
751        try {
752            var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
753            sleep(sleep_one);
754            console.info("logMessage contact_autoMerge_test_600 autoMergeCode = " + autoMergeCode);
755            expect(autoMergeCode == 0).assertTrue();
756            var map = new Map();
757            map.set("id", rawContactId1.toString());
758            await ContactMergeQuery(map, "contact_autoMerge_test_600", result_three);
759        } catch (error) {
760            console.info("logMessage contact_autoMerge_test_600 auto_merge error = " + error);
761        }
762    }
763
764    /**
765     * @tc.number  contact_query_merge_list_test_700
766     * @tc.name    Query contacts to be merged
767     * @tc.desc    Function test
768     */
769    it("contact_query_merge_list_test_700", 0, async function(done) {
770        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
771        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
772        console.info("------logMessage contact_query_merge_list_test_700 is starting!-----");
773        var insertRawContactValues1 = {"display_name" : "xiaowu"};
774        try {
775            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
776            sleep(sleep_one);
777            console.info("logMessage contact_query_merge_list_test_700: rawContactId1 = " + rawContactId1);
778            expect(rawContactId1 > 0).assertTrue();
779            await queryContactDataInsert(dataShareHelper, rawContactId1);
780        } catch (error) {
781            console.info('logMessage contact_query_merge_list_test_700: raw_contact_1 insert error = ' + error);
782            done();
783        }
784
785        var insertRawContactValues2 = {"display_name" : "xiaowu"};
786        try {
787            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
788            sleep(sleep_one);
789            console.info("logMessage contact_query_merge_list_test_700: rawContactId2 = " + rawContactId2);
790            expect(rawContactId2 > 0).assertTrue();
791            await queryContactDataInsertTwo(dataShareHelper, rawContactId2);
792        } catch (error) {
793            console.info('logMessage contact_query_merge_list_test_700: raw_contact_2 insert error = ' + error);
794            done();
795        }
796        await queryMergeList(dataShareHelper, rawContactId1, rawContactId2, "contact_query_merge_list_test_700");
797        done();
798    });
799
800    async function queryContactDataInsert(dataShareHelper, rawContactId1)
801    {
802        var contactDataValues = {"raw_contact_id" : rawContactId1, "content_type" : "name", "detail_info" : "xiaowu"};
803        try {
804            var contactDataId1 = await dataShareHelper.insert(contactDataUri, contactDataValues);
805            sleep(sleep_one);
806            console.info("logMessage contact_query_merge_list_test_700: contactDataId1 = " + contactDataId1);
807            expect(contactDataId1 > 0).assertTrue();
808        } catch (error) {
809            console.info('logMessage contact_query_merge_list_test_700: contact_data_1 insert error = ' + error);
810        }
811    }
812
813    async function queryContactDataInsertTwo(dataShareHelper, rawContactId2)
814    {
815        var contactDataValuesOne = {
816            "raw_contact_id" : rawContactId2,
817            "content_type" : "name",
818            "detail_info" : "xiaowu"
819        };
820        var contactDataValuesTwo = {
821            "raw_contact_id" : rawContactId2,
822            "content_type" : "phone",
823            "detail_info" : "002563"
824        };
825        var listAddBluk = [];
826        listAddBluk[0] = contactDataValuesOne;
827        listAddBluk[1] = contactDataValuesTwo;
828        try {
829            var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk);
830            sleep(sleep_one);
831            console.info("logMessage contact_query_merge_list_test_700: batchInsertCode = " + batchInsertCode);
832            expect(batchInsertCode == 0).assertTrue();
833        } catch (error) {
834            console.info('logMessage contact_query_merge_list_test_700: contact_data_2 insert error = ' + error);
835        }
836    }
837
838    async function queryMergeList(dataShareHelper, rawContactId1, rawContactId2, testName)
839    {
840        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
841        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
842        var columns = [];
843        var predicates = new dataShare.DataSharePredicates();
844        try {
845            sleep(sleep_three);
846            var resultSet = await dataShareHelper.query(uriQueryMergeList, columns, predicates);
847            var array = [ rawContactId1, rawContactId2 ];
848            var i = 0;
849            if (resultSet.rowCount > 0) {
850                if (resultSet.goToFirstRow()) {
851                    do {
852                        var rawContactId = resultSet.getInt(resultSet.getColumnIndex("raw_contact_id"));
853                        console.info(testName + (array[i] == rawContactId));
854                        expect(array[i] == rawContactId).assertTrue();
855                        console.info(testName + rawContactId);
856                        i++;
857                    } while (resultSet.goToNextRow())
858                }
859            }
860            resultSet.close();
861            await deleteAll(rawContactUri, testName);
862            await deleteAll(contactDataUri, testName);
863        } catch (error) {
864            console.info(testName + ": query error = " + error);
865        }
866    }
867
868    /**
869     * @tc.number  contact_query_merge_list_test_800
870     * @tc.name    Insert contacts with the same name and different mobile phone numbers,
871     *             and check whether the database can query contacts that can be merged
872     * @tc.desc    Function test
873     */
874    it("contact_query_merge_list_test_800", 0, async function(done) {
875        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
876        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
877        console.info("------logMessage contact_query_merge_list_test_800 is starting!-----");
878        var insertRawContactValues1 = {"display_name" : "xiaowuu"};
879        try {
880            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
881            sleep(sleep_one);
882            console.info("logMessage contact_query_merge_list_test_800: rawContactId1 = " + rawContactId1);
883            expect(rawContactId1 > 0).assertTrue();
884            var detailInfo = [ "xiaowuu", "1854154" ];
885            var types = [ "name", "phone" ];
886            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_800");
887        } catch (error) {
888            console.info('logMessage contact_query_merge_list_test_800: raw_contact_1 insert error = ' + error);
889            done();
890        }
891        var insertRawContactValues2 = {"display_name" : "xiaowuu"};
892        try {
893            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
894            sleep(sleep_one);
895            console.info("logMessage contact_query_merge_list_test_800: rawContactId2 = " + rawContactId2);
896            expect(rawContactId2 > 0).assertTrue();
897            var detailInfo1 = [ "xiaowuu", "1854154414242" ];
898            var types1 = [ "name", "phone" ];
899            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_800");
900        } catch (error) {
901            console.info('logMessage contact_query_merge_list_test_800: raw_contact_2 insert error = ' + error);
902            done();
903        }
904        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ];
905        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_800");
906        done();
907    });
908
909    /**
910     * @tc.number  contact_query_merge_list_test_900
911     * @tc.name    Insert two contacts with different names to see if the database can
912     *             query contacts that can be merged
913     * @tc.desc    Function test
914     */
915    it("contact_query_merge_list_test_900", 0, async function(done) {
916        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
917        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
918        console.info("------logMessage contact_query_merge_list_test_900 is starting!-----");
919        var insertRawContactValues1 = {"display_name" : "xiaowusu"};
920        try {
921            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
922            sleep(sleep_one);
923            console.info("logMessage contact_query_merge_list_test_900: rawContactId1 = " + rawContactId1);
924            expect(rawContactId1 > 0).assertTrue();
925            var detailInfo = [ "xiaowusu" ];
926            var types = [ "name" ];
927            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_900");
928        } catch (error) {
929            console.info('logMessage contact_query_merge_list_test_900: raw_contact_1 insert error = ' + error);
930            done();
931        }
932        var insertRawContactValues2 = {"display_name" : "kxiaowusu"};
933        try {
934            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
935            sleep(sleep_one);
936            console.info("logMessage contact_query_merge_list_test_900: rawContactId2 = " + rawContactId2);
937            expect(rawContactId2 > 0).assertTrue();
938            var detailInfo1 = [ "kxiaowusu" ];
939            var types1 = [ "name" ];
940            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_900");
941        } catch (error) {
942            console.info('logMessage contact_query_merge_list_test_900: raw_contact_2 insert error = ' + error);
943            done();
944        }
945        await ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, "contact_query_merge_list_test_900");
946        done();
947    });
948
949    async function ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, tag)
950    {
951        var condition2 = new dataShare.DataSharePredicates();
952        var id = [ rawContactId1.toString(), rawContactId2.toString() ];
953        condition2.in("raw_contact_id", id);
954        var updateValues2 = {};
955        try {
956            var ManualMergeCode = await dataShareHelper.update(manualMergeUri, updateValues2, condition2);
957            sleep(sleep_one);
958            console.info(tag + "logMessage ManualMergeCode = " + ManualMergeCode);
959            expect(ManualMergeCode == -1).assertTrue();
960            var map = new Map();
961            map.set("id", rawContactId1.toString());
962            await ContactMergeQuery(map, tag, 1);
963            await deleteAll(rawContactUri, tag);
964            await deleteAll(contactDataUri, tag);
965        } catch (error) {
966            console.info(tag + "logMessage manual_merge error = " + error);
967        }
968    }
969
970    /**
971     * @tc.number  contact_query_merge_list_test_1000
972     * @tc.name    Insert contacts with the same name and phone number, and check whether
973     *             the database can query contacts that can be merged
974     * @tc.desc    Function test
975     */
976    it("contact_query_merge_list_test_1000", 0, async function(done) {
977        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
978        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
979        console.info("------logMessage contact_query_merge_list_test_1000 is starting!-----");
980        var insertRawContactValues1 = {"display_name" : "xiaotiantian"};
981        try {
982            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
983            sleep(sleep_one);
984            console.info("logMessage contact_query_merge_list_test_1000: rawContactId1 = " + rawContactId1);
985            expect(rawContactId1 > 0).assertTrue();
986            var detailInfo = [ "xiaotiantian", "1854154414242441" ];
987            var types = [ "name", "phone" ];
988            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1000");
989        } catch (error) {
990            console.info('logMessage contact_query_merge_list_test_1000: raw_contact_1 insert error = ' + error);
991            done();
992        }
993        var insertRawContactValues2 = {"display_name" : "xiaotiantian"};
994        try {
995            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
996            sleep(sleep_one);
997            console.info("logMessage contact_query_merge_list_test_1000: rawContactId2 = " + rawContactId2);
998            expect(rawContactId2 > 0).assertTrue();
999            var detailInfo1 = [ "xiaotiantian", "1854154414242441" ];
1000            var types1 = [ "name", "phone" ];
1001            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1000");
1002            sleep(sleep_two);
1003        } catch (error) {
1004            console.info('logMessage contact_query_merge_list_test_1000: raw_contact_2 insert error = ' + error);
1005            done();
1006        }
1007        let condition = new dataShare.DataSharePredicates();
1008        var updateValues = {};
1009        try {
1010            sleep(sleep_three);
1011            var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
1012            console.info("logMessage contact_query_merge_list_test_1000: autoMergeCode = " + autoMergeCode);
1013            expect(autoMergeCode == 0).assertTrue();
1014            var map = new Map();
1015            map.set("id", rawContactId1.toString());
1016            await ContactMergeQuery(map, "contact_query_merge_list_test_1000", result_two);
1017            await deleteAll(rawContactUri, "contact_query_merge_list_test_1000");
1018            await deleteAll(contactDataUri, "contact_query_merge_list_test_1000");
1019            done();
1020        } catch (error) {
1021            console.info("logMessage contact_query_merge_list_test_1000: auto_merge error = " + error);
1022        }
1023    });
1024
1025    /**
1026       * @tc.number  contact_query_merge_list_test_1100
1027       * @tc.name    Insert contacts with different names and different mobile phone numbers,
1028                     and check whether the database can query contacts that can be merged
1029       * @tc.desc    Function test
1030       */
1031    it("contact_query_merge_list_test_1100", 0, async function(done) {
1032        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1033        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1034        console.info("------logMessage contact_query_merge_list_test_1100 is starting!-----");
1035        var insertRawContactValues1 = {"display_name" : "wsxiuklkk"};
1036        try {
1037            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1038            sleep(sleep_one);
1039            console.info("logMessage contact_query_merge_list_test_1100: rawContactId1 = " + rawContactId1);
1040            expect(rawContactId1 > 0).assertTrue();
1041            var detailInfo = [ "wsxiuklkk", "56465465" ];
1042            var types = [ "name", "phone" ];
1043            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1100");
1044        } catch (error) {
1045            console.info('logMessage contact_query_merge_list_test_1100: raw_contact_1 insert error = ' + error);
1046            done();
1047        }
1048        var insertRawContactValues2 = {"display_name" : "xiaolilili"};
1049        try {
1050            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1051            sleep(sleep_one);
1052            console.info("logMessage contact_query_merge_list_test_1100: rawContactId2 = " + rawContactId2);
1053            expect(rawContactId2 > 0).assertTrue();
1054            var detailInfo1 = [ "xiaolilili", "8954598595" ];
1055            var types1 = [ "name", "phone" ];
1056            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1100");
1057        } catch (error) {
1058            console.info('logMessage contact_query_merge_list_test_1100: raw_contact_2 insert error = ' + error);
1059            done();
1060        }
1061        await ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, "contact_query_merge_list_test_1100");
1062        done();
1063    });
1064
1065    /**
1066        * @tc.number  contact_query_merge_list_test_1200
1067        * @tc.name    Insert two contacts with the same name. Contacts A and B have two
1068                      same mobile phone numbers, and check whether the database can be merged
1069        * @tc.desc    Function test
1070        */
1071    it("contact_query_merge_list_test_1200", 0, async function(done) {
1072        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1073        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1074        console.info("------logMessage contact_query_merge_list_test_1200 is starting!-----");
1075        var insertRawContactValues1 = {"display_name" : "lwsxiuklkk"};
1076        try {
1077            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1078            sleep(sleep_one);
1079            console.info("logMessage contact_query_merge_list_test_1200: rawContactId1 = " + rawContactId1);
1080            expect(rawContactId1 > 0).assertTrue();
1081            var detailInfo = [ "lwsxiuklkk", "122504", "122505" ];
1082            var types = [ "name", "phone", "phone" ];
1083            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1200");
1084        } catch (error) {
1085            console.info('logMessage contact_query_merge_list_test_1200: raw_contact_1 insert error = ' + error);
1086            done();
1087        }
1088        var insertRawContactValues2 = {"display_name" : "lwsxiuklkk"};
1089        try {
1090            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1091            sleep(sleep_one);
1092            console.info("logMessage contact_query_merge_list_test_1200: rawContactId2 = " + rawContactId2);
1093            expect(rawContactId2 > 0).assertTrue();
1094            var detailInfo1 = [ "lwsxiuklkk", "122504", "122505" ];
1095            var types1 = [ "name", "phone", "phone" ];
1096            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1200");
1097        } catch (error) {
1098            console.info('logMessage contact_query_merge_list_test_1200: raw_contact_2 insert error = ' + error);
1099            done();
1100        }
1101        await AutoMerger(dataShareHelper, rawContactId1, "contact_query_merge_list_test_1200");
1102        done();
1103    });
1104
1105    /**
1106     * @tc.number  contact_query_merge_list_test_1300
1107     * @tc.name    Insert two contacts with the same name. Contacts A and B have two
1108     *             identical mobile phone numbers. Check whether the database can be merged
1109     * @tc.desc    Function test
1110     */
1111    it("contact_query_merge_list_test_1300", 0, async function(done) {
1112        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1113        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1114        console.info("------logMessage contact_query_merge_list_test_1300 is starting!-----");
1115        var insertRawContactValues1 = {"display_name" : "xiaowuuklkk"};
1116        try {
1117            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1118            sleep(sleep_one);
1119            console.info("logMessage contact_query_merge_list_test_1300: rawContactId1 = " + rawContactId1);
1120            expect(rawContactId1 > 0).assertTrue();
1121            var detailInfo = [ "xiaowuuklkk", "56465465", "122504" ];
1122            var types = [ "name", "phone", "phone" ];
1123            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1300");
1124        } catch (error) {
1125            console.info('logMessage contact_query_merge_list_test_1300: raw_contact_1 insert error = ' + error);
1126            done();
1127        }
1128        var insertRawContactValues2 = {"display_name" : "xiaowuuklkk"};
1129        try {
1130            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1131            sleep(sleep_one);
1132            console.info("logMessage contact_query_merge_list_test_1300: rawContactId2 = " + rawContactId2);
1133            expect(rawContactId2 > 0).assertTrue();
1134            var detailInfo1 = [ "xiaowuuklkk", "8954598595", "1225054" ];
1135            var types1 = [ "name", "phone", "phone" ];
1136            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1300");
1137        } catch (error) {
1138            console.info('logMessage contact_query_merge_list_test_1300: raw_contact_2 insert error = ' + error);
1139            done();
1140        }
1141        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ];
1142        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1300");
1143        done();
1144    });
1145
1146    /**
1147     * @tc.number  contact_query_merge_list_test_1400
1148     * @tc.name    Insert two contacts with the same name. Contacts A and B have two mobile phone
1149     *             numbers, one of which is the same. Check whether the database can be merged
1150     * @tc.desc    Function test
1151     */
1152    it("contact_query_merge_list_test_1400", 0, async function(done) {
1153        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1154        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1155        console.info("------logMessage contact_query_merge_list_test_1400 is starting!-----");
1156        var insertRawContactValues1 = {"display_name" : "limingm"};
1157        try {
1158            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1159            sleep(sleep_one);
1160            console.info("logMessage contact_query_merge_list_test_1400: rawContactId1 = " + rawContactId1);
1161            expect(rawContactId1 > 0).assertTrue();
1162            var detailInfo = [ "limingm", "122504555", "1122505" ];
1163            var types = [ "name", "phone", "phone" ];
1164            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1400");
1165        } catch (error) {
1166            console.info('logMessage contact_query_merge_list_test_1400: raw_contact_1 insert error = ' + error);
1167            done();
1168        }
1169        var insertRawContactValues2 = {"display_name" : "limingm"};
1170        try {
1171            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1172            sleep(sleep_one);
1173            console.info("logMessage contact_query_merge_list_test_1400: rawContactId2 = " + rawContactId2);
1174            expect(rawContactId2 > 0).assertTrue();
1175            var detailInfo1 = [ "limingm", "122504555", "1225056" ];
1176            var types1 = [ "name", "phone", "phone" ];
1177            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1400");
1178        } catch (error) {
1179            console.info('logMessage contact_query_merge_list_test_1400: raw_contact_2 insert error = ' + error);
1180            done();
1181        }
1182        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ];
1183        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1400");
1184        done();
1185    });
1186
1187    /**
1188     * @tc.number  contact_query_merge_list_test_1500
1189     * @tc.name    Insert two contacts with the same name, contact A has two mobile phone numbers,
1190     *             and contact B has one mobile phone number which is the same as one of the mobile phone
1191     *             numbers of A, and check whether the database can be merged
1192     * @tc.desc    Function test
1193     */
1194    it("contact_query_merge_list_test_1500", 0, async function(done) {
1195        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1196        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1197        console.info("------logMessage contact_query_merge_list_test_1500 is starting!-----");
1198        var insertRawContactValues1 = {"display_name" : "kplimingm"};
1199        try {
1200            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1201            sleep(sleep_one);
1202            console.info("logMessage contact_query_merge_list_test_1500: rawContactId1 = " + rawContactId1);
1203            expect(rawContactId1 > 0).assertTrue();
1204            var detailInfo = [ "kplimingm", "7122504555", "1122505" ];
1205            var types = [ "name", "phone", "phone" ];
1206            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1500");
1207        } catch (error) {
1208            console.info('logMessage contact_query_merge_list_test_1500: raw_contact_1 insert error = ' + error);
1209            done();
1210        }
1211        var insertRawContactValues2 = {"display_name" : "kplimingm"};
1212        try {
1213            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1214            sleep(sleep_one);
1215            console.info("logMessage contact_query_merge_list_test_1500: rawContactId2 = " + rawContactId2);
1216            expect(rawContactId2 > 0).assertTrue();
1217            var detailInfo1 = [ "kplimingm", "7122504555" ];
1218            var types1 = [ "name", "phone" ];
1219            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1500");
1220        } catch (error) {
1221            console.info('logMessage contact_query_merge_list_test_1500: raw_contact_2 insert error = ' + error);
1222            done();
1223        }
1224        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ];
1225        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1500");
1226        done();
1227    });
1228
1229    /**
1230     * @tc.number  contact_query_merge_list_test_1600
1231     * @tc.name    Insert two contacts with the same name, contact A has two mobile phone numbers,
1232     *             and contact B has a mobile phone number different from that of A, check whether
1233     *             the database can be merged
1234     * @tc.desc    Function test
1235     */
1236    it("contact_query_merge_list_test_1600", 0, async function(done) {
1237        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1238        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1239        console.info("------logMessage contact_query_merge_list_test_1600 is starting!-----");
1240        var insertRawContactValues1 = {"display_name" : "pkplimingm"};
1241        try {
1242            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1243            sleep(sleep_one);
1244            console.info("logMessage contact_query_merge_list_test_1600: rawContactId1 = " + rawContactId1);
1245            expect(rawContactId1 > 0).assertTrue();
1246            var detailInfo = [ "pkplimingm", "87122504555", "11122505" ];
1247            var types = [ "name", "phone", "phone" ];
1248            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1600");
1249        } catch (error) {
1250            console.info('logMessage contact_query_merge_list_test_1600: raw_contact_1 insert error = ' + error);
1251            done();
1252        }
1253        var insertRawContactValues2 = {"display_name" : "pkplimingm"};
1254        try {
1255            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1256            sleep(sleep_one);
1257            console.info("logMessage contact_query_merge_list_test_1600: rawContactId2 = " + rawContactId2);
1258            expect(rawContactId2 > 0).assertTrue();
1259            var detailInfo1 = [ "pkplimingm", "7122554504555", "11122505" ];
1260            var types1 = [ "name", "phone", "phone" ];
1261            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1600");
1262        } catch (error) {
1263            console.info('logMessage contact_query_merge_list_test_1600: raw_contact_2 insert error = ' + error);
1264            done();
1265        }
1266        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ];
1267        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1600");
1268        done();
1269    });
1270
1271    /**
1272     * @tc.number  contact_query_merge_list_test_1700
1273     * @tc.name    Insert multiple manually merged contacts to check whether the database can be merged
1274     * @tc.desc    Function test
1275     */
1276    it("contact_query_merge_list_test_1700", 0, async function(done) {
1277        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1278        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1279        console.info("------logMessage contact_query_merge_list_test_1700 is starting!-----");
1280        var insertRawContactValues1 = {"display_name" : "llllllk"};
1281        try {
1282            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1283            sleep(sleep_one);
1284            console.info("logMessage contact_query_merge_list_test_1700: rawContactId1 = " + rawContactId1);
1285            expect(rawContactId1 > 0).assertTrue();
1286            var detailInfo = [ "llllllk", "87122504555", "11122505" ];
1287            var types = [ "name", "phone", "phone" ];
1288            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1700");
1289        } catch (error) {
1290            console.info('logMessage contact_query_merge_list_test_1700: raw_contact_1 insert error = ' + error);
1291            done();
1292        }
1293        var insertRawContactValues2 = {"display_name" : "llllllk"};
1294        try {
1295            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1296            sleep(sleep_one);
1297            console.info("logMessage contact_query_merge_list_test_1700: rawContactId2 = " + rawContactId2);
1298            expect(rawContactId2 > 0).assertTrue();
1299            var detailInfo1 = [ "llllllk", "7555", "02505" ];
1300            var types1 = [ "name", "phone", "phone" ];
1301            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1700");
1302        } catch (error) {
1303            console.info('logMessage contact_query_merge_list_test_1700: raw_contact_2 insert error = ' + error);
1304            done();
1305        }
1306        var insertRawContactValues3 = {"display_name" : "llllllk"};
1307        try {
1308            var rawContactId3 = await dataShareHelper.insert(rawContactUri, insertRawContactValues3);
1309            sleep(sleep_one);
1310            console.info("logMessage contact_query_merge_list_test_1700: rawContactId2 = " + rawContactId3);
1311            expect(rawContactId3 > 0).assertTrue();
1312            var detailInfo1 = [ "llllllk", "87555", "002505" ];
1313            var types1 = [ "name", "phone", "phone" ];
1314            await insertContactData(dataShareHelper, rawContactId3, detailInfo1, types1, "contact_query_merge_list_test_1700");
1315        } catch (error) {
1316            console.info('logMessage contact_query_merge_list_test_1700: raw_contact_2 insert error = ' + error);
1317            done();
1318        }
1319        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "", rawContactId3 + "" ];
1320        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_1700");
1321        done();
1322    });
1323
1324    /**
1325     * @tc.number  contact_query_merge_list_test_1800
1326     * @tc.name    Import multiple automatically merged contacts to check whether the database can be merged
1327     * @tc.desc    Function test
1328     */
1329        it("contact_query_merge_list_test_1800", 0, async function(done) {
1330        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1331        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1332        console.info("------logMessage contact_query_merge_list_test_1800 is starting!-----");
1333        var insertRawContactValues1 = {"display_name" : "jggbgbk"};
1334        try {
1335            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1336            sleep(sleep_one);
1337            console.info("logMessage contact_query_merge_list_test_1800: rawContactId1 = " + rawContactId1);
1338            expect(rawContactId1 > 0).assertTrue();
1339            var detailInfo = [ "jggbgbk", "85555", "996174" ];
1340            var types = [ "name", "phone", "phone" ];
1341            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "contact_query_merge_list_test_1800");
1342        } catch (error) {
1343            console.info('logMessage contact_query_merge_list_test_1800: raw_contact_1 insert error = ' + error);
1344            done();
1345        }
1346        var insertRawContactValues2 = {"display_name" : "jggbgbk"};
1347        try {
1348            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1349            sleep(sleep_one);
1350            console.info("logMessage contact_query_merge_list_test_1800: rawContactId2 = " + rawContactId2);
1351            expect(rawContactId2 > 0).assertTrue();
1352            var detailInfo1 = [ "jggbgbk", "85555", "996174" ];
1353            var types1 = [ "name", "phone", "phone" ];
1354            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "contact_query_merge_list_test_1800");
1355        } catch (error) {
1356            console.info('logMessage contact_query_merge_list_test_1800: raw_contact_2 insert error = ' + error);
1357            done();
1358        }
1359        var insertRawContactValues3 = {"display_name" : "jggbgbk"};
1360        try {
1361            var rawContactId3 = await dataShareHelper.insert(rawContactUri, insertRawContactValues3);
1362            sleep(sleep_one);
1363            console.info("logMessage contact_query_merge_list_test_1800: rawContactId2 = " + rawContactId3);
1364            expect(rawContactId3 > 0).assertTrue();
1365            var detailInfo1 = [ "jggbgbk", "85555", "996174" ];
1366            var types1 = [ "name", "phone", "phone" ];
1367            await insertContactData(dataShareHelper, rawContactId3, detailInfo1, types1, "contact_query_merge_list_test_1800");
1368        } catch (error) {
1369            console.info('logMessage contact_query_merge_list_test_1800: raw_contact_2 insert error = ' + error);
1370            done();
1371        }
1372        let condition = new dataShare.DataSharePredicates();
1373        var updateValues = {};
1374        try {
1375            var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
1376            sleep(sleep_one);
1377            console.info("logMessage contact_query_merge_list_test_1800 autoMergeCode = " + autoMergeCode);
1378            expect(autoMergeCode == 0).assertTrue();
1379            var map = new Map();
1380            map.set("id", rawContactId1.toString());
1381            await ContactMergeQuery(map, "contact_query_merge_list_test_1800", result_three);
1382            await deleteAll(rawContactUri, "contact_query_merge_list_test_1800");
1383            await deleteAll(contactDataUri, "contact_query_merge_list_test_1800");
1384        } catch (error) {
1385            console.info("contact_query_merge_list_test_1800 auto_merge error =" + error);
1386        }
1387        done();
1388    });
1389
1390    /**
1391     * @tc.number  contact_query_merge_list_test_1900
1392     * @tc.name    Insert two contacts with the same name, contact A has two mobile phone numbers,
1393     *             and contact B has a mobile phone number different from that of A, check whether
1394     *             the database can be merged
1395     * @tc.desc    Function test
1396     */
1397    it("contact_query_merge_list_test_1900", 0, async function(done) {
1398        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1399        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1400        console.info("------logMessage contact_query_merge_list_test_1900 is starting!-----");
1401        var insertRawContactValues1 = {"display_name" : "owjiuh"};
1402        try {
1403            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1404            sleep(sleep_one);
1405            console.info("logMessage contact_query_merge_list_test_1900: rawContactId1 = " + rawContactId1);
1406            expect(rawContactId1 > 0).assertTrue();
1407            var dataId = insertContactDataSingle(dataShareHelper, rawContactId1, "owjiuh", "name");
1408        } catch (error) {
1409            console.info('logMessage contact_query_merge_list_test_1900: raw_contact_1 insert error = ' + error);
1410            done();
1411        }
1412        var insertRawContactValues2 = {"display_name" : "owjiuh"};
1413        try {
1414            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1415            sleep(sleep_one);
1416            console.info("logMessage contact_query_merge_list_test_1900: rawContactId2 = " + rawContactId2);
1417            expect(rawContactId2 > 0).assertTrue();
1418            var dataId = insertContactDataSingle(dataShareHelper, rawContactId1, "owjiuh", "name");
1419        } catch (error) {
1420            console.info('logMessage contact_query_merge_list_test_1900: raw_contact_2 insert error = ' + error);
1421            done();
1422        }
1423        await updateContactData("owjiuh111", dataId, "contact_query_merge_list_test_1900");
1424        await AutoNotMerger(dataShareHelper, rawContactId1, "contact_query_merge_list_test_1900");
1425        done();
1426    });
1427
1428    /**
1429     * @tc.number  contact_query_merge_list_test_2000
1430     * @tc.name    Insert two automatically merged contacts, modify the phone number of A, and then
1431     *             merge the contacts manually to check whether the database can be merged
1432     *             the database can be merged
1433     * @tc.desc    Function test
1434     */
1435    it("contact_query_merge_list_test_2000", 0, async function(done) {
1436        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1437        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1438        console.info("------logMessage contact_query_merge_list_test_2000 is starting!-----");
1439        var insertRawContactValues1 = {"display_name" : "ollwjiuh"};
1440        try {
1441            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1442            sleep(sleep_one);
1443            console.info("logMessage contact_query_merge_list_test_2000: rawContactId1 = " + rawContactId1);
1444            expect(rawContactId1 > 0).assertTrue();
1445            await insertContactDataSingle(dataShareHelper, rawContactId1, "ollwjiuh", "name");
1446            var dataIdTwo = await insertContactDataSingle(dataShareHelper, rawContactId1, "8554544", "phone");
1447        } catch (error) {
1448            console.info('logMessage contact_query_merge_list_test_2000: raw_contact_1 insert error = ' + error);
1449            done();
1450        }
1451        var insertRawContactValues2 = {"display_name" : "ollwjiuh"};
1452        try {
1453            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1454            sleep(sleep_one);
1455            console.info("logMessage contact_query_merge_list_test_2000: rawContactId2 = " + rawContactId2);
1456            expect(rawContactId2 > 0).assertTrue();
1457            await insertContactDataSingle(dataShareHelper, rawContactId2, "ollwjiuh", "name");
1458            await insertContactDataSingle(dataShareHelper, rawContactId2, "8554544", "phone");
1459            sleep(sleep_two);
1460        } catch (error) {
1461            console.info('logMessage contact_query_merge_list_test_2000: raw_contact_2 insert error = ' + error);
1462            done();
1463        }
1464        await updateContactData("8554544444", dataIdTwo, "contact_query_merge_list_test_2000");
1465        sleep(sleep_three);
1466        var rawContactIds = [ rawContactId1 + "", rawContactId2 + "" ];
1467        await ManualMergeList(dataShareHelper, rawContactIds, "contact_query_merge_list_test_2000");
1468        done();
1469    });
1470
1471    /**
1472     * @tc.number  abnormal_merge_Update_test_2100
1473     * @tc.name    Insert two contacts with different names for automatic and manual merging operations
1474     * @tc.desc    Function test
1475     */
1476    it("abnormal_merge_Update_test_2100", 0, async function(done) {
1477        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1478        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1479        console.info("------logMessage abnormal_merge_Update_test_2100 is starting!-----");
1480        var insertRawContactValues1 = {"display_name" : "2100mergeTest"};
1481        try {
1482            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1483            sleep(sleep_one);
1484            console.info("logMessage abnormal_merge_Update_test_2100: rawContactId1 = " + rawContactId1);
1485            expect(rawContactId1 > 0).assertTrue();
1486            var detailInfo = [ "2100mergeTest" ];
1487            var types = [ "name" ];
1488            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2100");
1489        } catch (error) {
1490            console.info('logMessage abnormal_merge_Update_test_2100: raw_contact_1 insert error = ' + error);
1491            done();
1492        }
1493        var insertRawContactValues2 = {"display_name" : "2100mergeTestTwo"};
1494        try {
1495            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1496            sleep(sleep_one);
1497            console.info("logMessage abnormal_merge_Update_test_2100: rawContactId2 = " + rawContactId2);
1498            expect(rawContactId2 > 0).assertTrue();
1499            var detailInfo1 = [ "2100mergeTestTwo" ];
1500            var types1 = [ "name" ];
1501            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2100");
1502        } catch (error) {
1503            console.info('logMessage abnormal_merge_Update_test_2100: raw_contact_2 insert error = ' + error);
1504            done();
1505        }
1506        let condition = new dataShare.DataSharePredicates();
1507        var updateValues = {};
1508        var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
1509        console.info("logMessage abnormal_merge_Update_test_2100 autoMergeCode = " + autoMergeCode);
1510        expect(autoMergeCode == -1).assertTrue();
1511        await ManualNotMerge(dataShareHelper, rawContactId1, rawContactId2, "abnormal_merge_Update_test_2100");
1512        done();
1513    });
1514
1515    /**
1516     * @tc.number  abnormal_merge_Update_test_2200
1517     * @tc.name    Insert two contacts with same names for automatic and manual merging operations
1518     * @tc.desc    Function test
1519     */
1520    it("abnormal_merge_Update_test_2200", 0, async function(done) {
1521        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1522        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1523        console.info("------logMessage abnormal_merge_Update_test_2200 is starting!-----");
1524        var insertRawContactValues1 = {"display_name" : "2200mergeTest"};
1525        try {
1526            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1527            sleep(sleep_one);
1528            console.info("logMessage abnormal_merge_Update_test_2200: rawContactId1 = " + rawContactId1);
1529            expect(rawContactId1 > 0).assertTrue();
1530            var detailInfo = [ "2200mergeTest", "45544" ];
1531            var types = [ "name", "phone" ];
1532            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2200");
1533        } catch (error) {
1534            console.info('logMessage abnormal_merge_Update_test_2200: raw_contact_1 insert error = ' + error);
1535            done();
1536        }
1537        var insertRawContactValues2 = {"display_name" : "2200mergeTestTwo"};
1538        try {
1539            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1540            sleep(sleep_one);
1541            console.info("logMessage abnormal_merge_Update_test_2200: rawContactId2 = " + rawContactId2);
1542            expect(rawContactId2 > 0).assertTrue();
1543            var detailInfo1 = [ "2200mergeTestTwo", "55134865" ];
1544            var types1 = [ "name", "phone" ];
1545            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2200");
1546        } catch (error) {
1547            console.info('logMessage abnormal_merge_Update_test_2200: raw_contact_2 insert error = ' + error);
1548            done();
1549        }
1550        await queryMergeListError(dataShareHelper, rawContactId1, rawContactId2, "abnormal_merge_Update_test_2200");
1551        done();
1552    });
1553
1554    async function queryMergeListError(dataShareHelper, rawContactId1, rawContactId2, testName)
1555    {
1556        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1557        console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper);
1558        var columns = [ "display_names" ];
1559        var predicates = new dataShare.DataSharePredicates();
1560        try {
1561            sleep(sleep_three);
1562            var resultSet = await dataShareHelper.query(uriQueryMergeList, columns, predicates);
1563            console.info(testName + 'resultSet.rowCount  = ' + resultSet.rowCount);
1564            expect(resultSet.rowCount == 0).assertTrue();
1565            resultSet.close();
1566            await deleteAll(rawContactUri, testName);
1567            await deleteAll(contactDataUri, testName);
1568        } catch (error) {
1569            console.info(testName + ": query error = " + error);
1570        }
1571    }
1572
1573    /**
1574     * @tc.number  abnormal_merge_Update_test_2300
1575     * @tc.name    Insert two contacts with different names, and then automatically merge them to
1576     *             see if the database can be merged
1577     * @tc.desc    Function test
1578     */
1579    it("abnormal_merge_Update_test_2300", 0, async function(done) {
1580        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1581        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1582        console.info("------logMessage abnormal_merge_Update_test_2300 is starting!-----");
1583        var insertRawContactValues1 = {"display_name" : "2300mergeTest"};
1584        try {
1585            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1586            sleep(sleep_one);
1587            console.info("logMessage abnormal_merge_Update_test_2300: rawContactId1 = " + rawContactId1);
1588            expect(rawContactId1 > 0).assertTrue();
1589            var detailInfo = [ "2300mergeTest" ];
1590            var types = [ "name" ];
1591            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2300");
1592        } catch (error) {
1593            console.info('logMessage abnormal_merge_Update_test_2300: raw_contact_1 insert error = ' + error);
1594            done();
1595        }
1596        var insertRawContactValues2 = {"display_name" : "2300mergeTestName"};
1597        try {
1598            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1599            sleep(sleep_one);
1600            console.info("logMessage abnormal_merge_Update_test_2300: rawContactId2 = " + rawContactId2);
1601            expect(rawContactId2 > 0).assertTrue();
1602            var detailInfo1 = [ "2300mergeTestName" ];
1603            var types1 = [ "name" ];
1604            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2300");
1605        } catch (error) {
1606            console.info('logMessage abnormal_merge_Update_test_2300: raw_contact_2 insert error = ' + error);
1607            done();
1608        }
1609        await AutoNotMerger(dataShareHelper, rawContactId1, "abnormal_merge_Update_test_2300");
1610        done();
1611    });
1612
1613    /**
1614     * @tc.number  abnormal_merge_Update_test_2400
1615     * @tc.name    Insert two contacts with different names, and then automatically merge them to
1616     *             see if the database can be merged
1617     * @tc.desc    Function test
1618     */
1619    it("abnormal_merge_Update_test_2400", 0, async function(done) {
1620        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1621        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1622        console.info("------logMessage abnormal_merge_Update_test_2400 is starting!-----");
1623        var insertRawContactValues1 = {"display_name" : "2400mergeTest"};
1624        try {
1625            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1626            sleep(sleep_one);
1627            console.info("logMessage abnormal_merge_Update_test_2400: rawContactId1 = " + rawContactId1);
1628            expect(rawContactId1 > 0).assertTrue();
1629            var detailInfo = [ "2400mergeTest" ];
1630            var types = [ "namee" ];
1631            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2400");
1632        } catch (error) {
1633            console.info('logMessage abnormal_merge_Update_test_2400: raw_contact_1 insert error = ' + error);
1634            done();
1635        }
1636        var insertRawContactValues2 = {"display_name" : "2400mergeTest"};
1637        try {
1638            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1639            sleep(sleep_one);
1640            console.info("logMessage abnormal_merge_Update_test_2400: rawContactId2 = " + rawContactId2);
1641            expect(rawContactId2 > 0).assertTrue();
1642            var detailInfo1 = [ "2400mergeTest" ];
1643            var types1 = [ "name" ];
1644            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2400");
1645        } catch (error) {
1646            console.info('logMessage abnormal_merge_Update_test_2400: raw_contact_2 insert error = ' + error);
1647            done();
1648        }
1649        await AutoNotMerger(dataShareHelper, rawContactId1, "abnormal_merge_Update_test_2400");
1650        done();
1651    });
1652
1653    /**
1654     * @tc.number  abnormal_merge_Update_test_2500
1655     * @tc.name    Pass 0 after merging to split
1656     * @tc.desc    Function test
1657     */
1658    it("abnormal_merge_Update_test_2500", 0, async function(done) {
1659        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1660        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1661        console.info("------logMessage abnormal_merge_Update_test_2500 is starting!-----");
1662        var insertRawContactValues1 = {"display_name" : "2500mergeTest"};
1663        try {
1664            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1665            sleep(sleep_one);
1666            console.info("logMessage abnormal_merge_Update_test_2500: rawContactId1 = " + rawContactId1);
1667            expect(rawContactId1 > 0).assertTrue();
1668            var detailInfo = [ "2500mergeTest" ];
1669            var types = [ "name" ];
1670            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2500");
1671        } catch (error) {
1672            console.info('logMessage abnormal_merge_Update_test_2500: raw_contact_1 insert error = ' + error);
1673            done();
1674        }
1675        var insertRawContactValues2 = {"display_name" : "2500mergeTest"};
1676        try {
1677            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1678            sleep(sleep_one);
1679            console.info("logMessage abnormal_merge_Update_test_2500: rawContactId2 = " + rawContactId2);
1680            expect(rawContactId2 > 0).assertTrue();
1681            var detailInfo1 = [ "2500mergeTest" ];
1682            var types1 = [ "name" ];
1683            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2500");
1684        } catch (error) {
1685            console.info('logMessage abnormal_merge_Update_test_2500: raw_contact_2 insert error = ' + error);
1686            done();
1687        }
1688        let condition = new dataShare.DataSharePredicates();
1689        var updateValues = {};
1690        var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
1691        sleep(sleep_one);
1692        console.info("logMessage abnormal_merge_Update_test_2500 autoMergeCode = " + autoMergeCode);
1693        expect(autoMergeCode == 0).assertTrue();
1694        var map = new Map();
1695        map.set("id", rawContactId1.toString());
1696        await ContactNotSplit(dataShareHelper, 0, "abnormal_merge_Update_test_2500");
1697        await ContactMergeQuery(map, "abnormal_merge_Update_test_2500", result_two);
1698        await deleteAll(rawContactUri, "abnormal_merge_Update_test_2500");
1699        await deleteAll(contactDataUri, "abnormal_merge_Update_test_2500");
1700        done();
1701    });
1702
1703    /**
1704     * @tc.number  abnormal_merge_Update_test_2600
1705     * @tc.name    Pass -1 after merging to split
1706     * @tc.desc    Function test
1707     */
1708    it("abnormal_merge_Update_test_2600", 0, async function(done) {
1709        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1710        console.info('before delete_all: start ! dataShareHelper = ' + dataShareHelper);
1711        console.info("------logMessage abnormal_merge_Update_test_2600 is starting!-----");
1712        var insertRawContactValues1 = {"display_name" : "2600mergeTest"};
1713        try {
1714            var rawContactId1 = await dataShareHelper.insert(rawContactUri, insertRawContactValues1);
1715            sleep(sleep_one);
1716            console.info("logMessage abnormal_merge_Update_test_2600: rawContactId1 = " + rawContactId1);
1717            expect(rawContactId1 > 0).assertTrue();
1718            var detailInfo = [ "2600mergeTest" ];
1719            var types = [ "name" ];
1720            await insertContactData(dataShareHelper, rawContactId1, detailInfo, types, "abnormal_merge_Update_test_2600");
1721        } catch (error) {
1722            console.info('logMessage abnormal_merge_Update_test_2600: raw_contact_1 insert error = ' + error);
1723            done();
1724        }
1725        var insertRawContactValues2 = {"display_name" : "2600mergeTest"};
1726        try {
1727            var rawContactId2 = await dataShareHelper.insert(rawContactUri, insertRawContactValues2);
1728            sleep(sleep_one);
1729            console.info("logMessage abnormal_merge_Update_test_2600: rawContactId2 = " + rawContactId2);
1730            expect(rawContactId2 > 0).assertTrue();
1731            var detailInfo1 = [ "2600mergeTest" ];
1732            var types1 = [ "name" ];
1733            await insertContactData(dataShareHelper, rawContactId2, detailInfo1, types1, "abnormal_merge_Update_test_2600");
1734        } catch (error) {
1735            console.info('logMessage abnormal_merge_Update_test_2600: raw_contact_2 insert error = ' + error);
1736            done();
1737        }
1738        let condition = new dataShare.DataSharePredicates();
1739        var updateValues = {};
1740        var autoMergeCode = await dataShareHelper.update(autoMergeUri, updateValues, condition);
1741        sleep(sleep_one);
1742        console.info("logMessage abnormal_merge_Update_test_2600 autoMergeCode = " + autoMergeCode);
1743        expect(autoMergeCode == 0).assertTrue();
1744        var map = new Map();
1745        map.set("id", rawContactId1.toString());
1746        await ContactNotSplit(dataShareHelper, -1, "abnormal_merge_Update_test_2600");
1747        await ContactMergeQuery(map, "abnormal_merge_Update_test_2600", result_two);
1748        await deleteAll(rawContactUri, "abnormal_merge_Update_test_2600");
1749        await deleteAll(contactDataUri, "abnormal_merge_Update_test_2600");
1750        done();
1751    });
1752
1753    async function ContactNotSplit(dataShareHelper, rawContactId1, testName)
1754    {
1755        var condition2 = new dataShare.DataSharePredicates();
1756        var array = [ rawContactId1.toString() ];
1757        condition2.in("raw_contact_id", array);
1758        var updateValues2 = {};
1759        try {
1760            var splitCode = await dataShareHelper.update(splitUri, updateValues2, condition2);
1761            sleep(4000);
1762            console.info(testName + 'logMessage  splitCode = ' + splitCode);
1763            expect(splitCode == -1).assertTrue();
1764        } catch (error) {
1765            console.info(testName + 'logMessage  split error = ' + error);
1766        }
1767    }
1768
1769    afterAll(async function() {
1770        let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS);
1771        console.info('merge afterAll delete_All: start ! dataShareHelper = ' + dataShareHelper);
1772        let condition = new dataShare.DataSharePredicates();
1773        var deletedAll = await dataShareHelper.delete(deletedUri, condition);
1774        sleep(4000);
1775        console.info('merge afterAll delete_All : deletedAll ! dataShareHelper = ' + deletedAll);
1776    });
1777});
1778