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 
16 #include "contactquery_test.h"
17 
18 #include "construction_name.h"
19 #include "test_common.h"
20 
21 namespace Contacts {
22 namespace Test {
ContactQueryTest()23 ContactQueryTest::ContactQueryTest()
24 {
25 }
26 
~ContactQueryTest()27 ContactQueryTest::~ContactQueryTest()
28 {
29 }
30 
RawContactInsert(std::string displayName, OHOS::DataShare::DataShareValuesBucket &rawContactValues)31 int64_t ContactQueryTest::RawContactInsert(std::string displayName,
32     OHOS::DataShare::DataShareValuesBucket &rawContactValues)
33 {
34     OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
35     rawContactValues.Put("display_name", displayName);
36     int64_t code = contactsDataAbility.Insert(uriRawContact, rawContactValues);
37     return code;
38 }
39 
ContactDataInsert(int64_t rawContactId, std::string contentType, std::string detailInfo, std::string position, OHOS::DataShare::DataShareValuesBucket &contactDataValues)40 int64_t ContactQueryTest::ContactDataInsert(int64_t rawContactId, std::string contentType, std::string detailInfo,
41     std::string position, OHOS::DataShare::DataShareValuesBucket &contactDataValues)
42 {
43     OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
44     contactDataValues.Put("raw_contact_id", rawContactId);
45     contactDataValues.Put("content_type", contentType);
46     contactDataValues.Put("detail_info", detailInfo);
47     contactDataValues.Put("position", position);
48     int64_t code = contactsDataAbility.Insert(uriContactData, contactDataValues);
49     return code;
50 }
51 
ContactQuery( const std::string &tableName, std::vector<std::string> columns, OHOS::DataShare::DataSharePredicates predicates)52 std::shared_ptr<OHOS::DataShare::DataShareResultSet> ContactQueryTest::ContactQuery(
53     const std::string &tableName, std::vector<std::string> columns, OHOS::DataShare::DataSharePredicates predicates)
54 {
55     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet;
56     if (tableName == ContactTabName::RAW_CONTACT) {
57         OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
58         resultSet = contactsDataAbility.Query(uriRawContact, predicates, columns);
59     } else if (tableName == ContactTabName::CONTACT_DATA) {
60         OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
61         resultSet = contactsDataAbility.Query(uriContactData, predicates, columns);
62     } else if (tableName == ContactTabName::CONTACT) {
63         OHOS::Uri uriContact(ContactsUri::CONTACT);
64         resultSet = contactsDataAbility.Query(uriContact, predicates, columns);
65     } else if (tableName == ContactTabName::GROUPS) {
66         OHOS::Uri uriGroups(ContactsUri::GROUPS);
67         resultSet = contactsDataAbility.Query(uriGroups, predicates, columns);
68     } else if (tableName == ContactTabName::CONTACT_BLOCKLIST) {
69         OHOS::Uri uriBlocklist(ContactsUri::BLOCKLIST);
70         resultSet = contactsDataAbility.Query(uriBlocklist, predicates, columns);
71     } else if (tableName == ContactTabName::DELETED_RAW_CONTACT) {
72         OHOS::Uri uriDeletedRawContact(ContactsUri::RAW_CONTACT);
73         resultSet = contactsDataAbility.Query(uriDeletedRawContact, predicates, columns);
74     } else if (tableName == ContactTabName::SEARCH_CONTACT) {
75         OHOS::Uri uriSearchContact(ContactsUri::SEARCH);
76         resultSet = contactsDataAbility.Query(uriSearchContact, predicates, columns);
77     } else {
78         HILOG_ERROR("ContactsDataAbility ====>no match uri action");
79     }
80     return resultSet;
81 }
82 
ClearData()83 void ContactQueryTest::ClearData()
84 {
85     OHOS::DataShare::DataSharePredicates predicates;
86     OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
87     predicates.NotEqualTo("id", "0");
88     predicates.And();
89     predicates.EqualTo("is_deleted", "0");
90     contactsDataAbility.Delete(uriRawContact, predicates);
91     int time = 2000;
92     std::chrono::milliseconds dura(time);
93     std::this_thread::sleep_for(dura);
94     OHOS::DataShare::DataSharePredicates predicates2;
95     OHOS::Uri uriRawContactComplete(ContactsUri::DELETED_RAW_CONTACT);
96     predicates2.NotEqualTo("id", "0");
97     contactsDataAbility.Delete(uriRawContactComplete, predicates2);
98 }
99 
100 /*
101 * @tc.number  contact_data_Insert_test_100
102 * @tc.name    Insert contact details, including
103                 (name, company, position, mobile phone number, nickname, email, home, remarks, aim)
104 * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
105               email address, residence, remarks, AIM fuzzy search capabilities
106 * @tc.level   Level1
107 * @tc.size    MediumTest
108 * @tc.type    Function
109 */
HWTEST_F(ContactQueryTest, contact_data_Insert_test_100, testing::ext::TestSize.Level1)110 HWTEST_F(ContactQueryTest, contact_data_Insert_test_100, testing::ext::TestSize.Level1)
111 {
112     HILOG_INFO("-----contact_data_Insert_test_100-----");
113     OHOS::Contacts::ConstructionName::local = "zh-CN";
114     OHOS::DataShare::DataShareValuesBucket values;
115     OHOS::DataShare::DataShareValuesBucket valuesOne;
116     OHOS::DataShare::DataShareValuesBucket valuesTwo;
117     OHOS::DataShare::DataShareValuesBucket valuesThree;
118     OHOS::DataShare::DataShareValuesBucket valuesFour;
119     OHOS::DataShare::DataShareValuesBucket valuesFive;
120     OHOS::DataShare::DataShareValuesBucket valuesSix;
121     OHOS::DataShare::DataShareValuesBucket valuesSeven;
122     OHOS::DataShare::DataShareValuesBucket valuesEight;
123     std::string searchContact = ContactTabName::SEARCH_CONTACT;
124     int64_t rawContactId = RawContactInsert("买键盘", values);
125     EXPECT_GT(rawContactId, 0);
126 
127     int64_t contactDataIdOne = ContactDataInsert(rawContactId, "name", "买键盘", "", valuesOne);
128     EXPECT_GT(contactDataIdOne, 0);
129 
130     int64_t contactDataIdTwo =
131         ContactDataInsert(rawContactId, "organization", "你好天天向上hsk", "安全测试", valuesTwo);
132     EXPECT_GT(contactDataIdTwo, 0);
133 
134     int64_t contactDataIdThree = ContactDataInsert(rawContactId, "phone", "18552504058", "", valuesThree);
135     EXPECT_GT(contactDataIdThree, 0);
136 
137     int64_t contactDataIdFour = ContactDataInsert(rawContactId, "nickname", "买键盘", "", valuesFour);
138     EXPECT_GT(contactDataIdFour, 0);
139 
140     int64_t contactDataIdFive = ContactDataInsert(rawContactId, "email", "1667894561@163.com", "", valuesFive);
141     EXPECT_GT(contactDataIdFive, 0);
142 
143     int64_t contactDataIdSix = ContactDataInsert(rawContactId, "postal_address", "南京市", "", valuesSix);
144     EXPECT_GT(contactDataIdSix, 0);
145 
146     int64_t contactDataIdSeven = ContactDataInsert(rawContactId, "note", "LanguagemjavaC++", "", valuesSeven);
147     EXPECT_GT(contactDataIdSeven, 0);
148 
149     int64_t contactDataIdEight = ContactDataInsert(rawContactId, "im", "14487956@1.com", "", valuesEight);
150     EXPECT_GT(contactDataIdEight, 0);
151     ClearData();
152 }
153 
154 /*
155  * @tc.number  query_by_name_test_200
156  * @tc.name    Fuzzy search by name
157  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
158                email address, residence, remarks, AIM fuzzy search capabilities
159  * @tc.level   Level1
160  * @tc.size    MediumTest
161  * @tc.type    Function
162  */
HWTEST_F(ContactQueryTest, query_by_name_test_200, testing::ext::TestSize.Level1)163 HWTEST_F(ContactQueryTest, query_by_name_test_200, testing::ext::TestSize.Level1)
164 {
165     HILOG_INFO("-----query_by_name_test_200 is starting!-----");
166     std::string tag("query_by_name_test_200");
167     std::vector<std::string> columns;
168     columns.push_back("display_name");
169     OHOS::DataShare::DataSharePredicates predicates;
170     predicates.Like("display_name", "%买%");
171     std::string searchContact = ContactTabName::SEARCH_CONTACT;
172     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates);
173 
174     OHOS::DataShare::DataShareValuesBucket values;
175     values.Put("display_name", "买键盘");
176     CheckResultSet(values, resultSet, "query_by_name_test_200");
177     ClearData();
178 }
179 
180 /*
181  * @tc.number  query_by_pinyin_test_300
182  * @tc.name    Fuzzy search based on name Pinyin
183  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
184                email address, residence, remarks, AIM fuzzy search capabilities
185  * @tc.level   Level1
186  * @tc.size    MediumTest
187  * @tc.type    Function
188  */
HWTEST_F(ContactQueryTest, query_by_pinyin_test_300, testing::ext::TestSize.Level1)189 HWTEST_F(ContactQueryTest, query_by_pinyin_test_300, testing::ext::TestSize.Level1)
190 {
191     HILOG_INFO("-----query_by_pinyin_test_300 is starting!-----");
192     std::string tag("query_by_pinyin_test_300");
193     std::vector<std::string> columns;
194     columns.push_back("id");
195     columns.push_back("search_name");
196     OHOS::DataShare::DataSharePredicates predicates;
197     predicates.Like("search_name", "%mai%");
198     std::string searchContact = ContactTabName::SEARCH_CONTACT;
199     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates);
200 
201     OHOS::DataShare::DataShareValuesBucket values;
202     values.Put("search_name", "买键盘||maijianpan||mjp");
203     CheckResultSet(values, resultSet, "query_by_pinyin_test_300");
204     ClearData();
205 }
206 
207 /*
208  * @tc.number  query_by_pinyin_test_400
209  * @tc.name    Fuzzy search based on Pinyin name
210  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
211                email address, residence, remarks, AIM fuzzy search capabilities
212  * @tc.level   Level1
213  * @tc.size    MediumTest
214  * @tc.type    Function
215  */
HWTEST_F(ContactQueryTest, query_by_pinyin_test_400, testing::ext::TestSize.Level1)216 HWTEST_F(ContactQueryTest, query_by_pinyin_test_400, testing::ext::TestSize.Level1)
217 {
218     HILOG_INFO("-----query_by_pinyin_test_400 is starting!-----");
219     std::string tag("query_by_pinyin_test_400");
220     std::vector<std::string> columns;
221     columns.push_back("id");
222     columns.push_back("search_name");
223     OHOS::DataShare::DataSharePredicates predicates;
224     predicates.Like("search_name", "%mjp%");
225     std::string searchContact = ContactTabName::SEARCH_CONTACT;
226     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates);
227 
228     OHOS::DataShare::DataShareValuesBucket values;
229     values.Put("search_name", "买键盘||maijianpan||mjp");
230     CheckResultSet(values, resultSet, "query_by_pinyin_test_400");
231     ClearData();
232 }
233 
234 /*
235  * @tc.number  query_by_company_test_500
236  * @tc.name    Fuzzy search by company
237  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
238                email address, residence, remarks, AIM fuzzy search capabilities
239  * @tc.level   Level1
240  * @tc.size    MediumTest
241  * @tc.type    Function
242  */
HWTEST_F(ContactQueryTest, query_by_company_test_500, testing::ext::TestSize.Level1)243 HWTEST_F(ContactQueryTest, query_by_company_test_500, testing::ext::TestSize.Level1)
244 {
245     HILOG_INFO("-----query_by_company_test_500 is starting!-----");
246     std::string tag("query_by_company_test_500");
247     std::vector<std::string> columns;
248     columns.push_back("detail_info");
249     columns.push_back("position");
250     OHOS::DataShare::DataSharePredicates predicates;
251     predicates.Like("detail_info", "%天天向上%");
252     predicates.And();
253     predicates.EqualTo("type_id", "4");
254     std::string contactData = "contact_data";
255     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
256 
257     OHOS::DataShare::DataShareValuesBucket values;
258     values.Put("detail_info", "你好天天向上hsk");
259     values.Put("position", "安全测试");
260     CheckResultSet(values, resultSet, "query_by_company_test_500");
261     ClearData();
262 }
263 
264 /*
265  * @tc.number  query_by_position_test_600
266  * @tc.name    Fuzzy search by position
267  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
268                email address, residence, remarks, AIM fuzzy search capabilities
269  * @tc.level   Level1
270  * @tc.size    MediumTest
271  * @tc.type    Function
272  */
HWTEST_F(ContactQueryTest, query_by_position_test_600, testing::ext::TestSize.Level1)273 HWTEST_F(ContactQueryTest, query_by_position_test_600, testing::ext::TestSize.Level1)
274 {
275     HILOG_INFO("-----query_by_position_test_600 is starting!-----");
276     std::string tag("query_by_position_test_600");
277     std::vector<std::string> columns;
278     columns.push_back("detail_info");
279     columns.push_back("position");
280     OHOS::DataShare::DataSharePredicates predicates;
281     predicates.Like("position", "%测试%");
282     predicates.And();
283     predicates.EqualTo("type_id", "4");
284     std::string contactData = "contact_data";
285     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
286 
287     OHOS::DataShare::DataShareValuesBucket values;
288     values.Put("detail_info", "你好天天向上hsk");
289     values.Put("position", "安全测试");
290     CheckResultSet(values, resultSet, "query_by_position_test_600");
291     ClearData();
292 }
293 
294 /*
295  * @tc.number  query_by_phone_test_700
296  * @tc.name    Fuzzy search according to mobile phone number
297  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
298                email address, residence, remarks, AIM fuzzy search capabilities
299  * @tc.level   Level1
300  * @tc.size    MediumTest
301  * @tc.type    Function
302  */
HWTEST_F(ContactQueryTest, query_by_phone_test_700, testing::ext::TestSize.Level1)303 HWTEST_F(ContactQueryTest, query_by_phone_test_700, testing::ext::TestSize.Level1)
304 {
305     HILOG_INFO("-----query_by_phone_test_700 is starting!-----");
306     std::string tag("query_by_phone_test_700");
307     std::vector<std::string> columns;
308     columns.push_back("detail_info");
309     OHOS::DataShare::DataSharePredicates predicates;
310     predicates.Like("detail_info", "1855250%");
311     predicates.And();
312     predicates.EqualTo("type_id", "5");
313     std::string contactData = "contact_data";
314     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
315 
316     OHOS::DataShare::DataShareValuesBucket values;
317     values.Put("detail_info", "18552504058");
318     CheckResultSet(values, resultSet, "query_by_phone_test_700");
319     ClearData();
320 }
321 
322 /*
323  * @tc.number  query_by_nick_name_test_800
324  * @tc.name    Fuzzy search by nickname
325  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
326                email address, residence, remarks, AIM fuzzy search capabilities
327  * @tc.level   Level1
328  * @tc.size    MediumTest
329  * @tc.type    Function
330  */
HWTEST_F(ContactQueryTest, query_by_nick_name_test_800, testing::ext::TestSize.Level1)331 HWTEST_F(ContactQueryTest, query_by_nick_name_test_800, testing::ext::TestSize.Level1)
332 {
333     HILOG_INFO("-----query_by_nick_name_test_800 is starting!-----");
334     std::string tag("query_by_nick_name_test_800");
335     std::vector<std::string> columns;
336     columns.push_back("detail_info");
337     OHOS::DataShare::DataSharePredicates predicates;
338     predicates.Like("detail_info", "%买%");
339     predicates.And();
340     predicates.EqualTo("type_id", "3");
341     std::string contactData = "contact_data";
342     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
343 
344     OHOS::DataShare::DataShareValuesBucket values;
345     values.Put("detail_info", "买键盘");
346     CheckResultSet(values, resultSet, "query_by_nick_name_test_800");
347     ClearData();
348 }
349 
350 /*
351  * @tc.number  query_by_email_test_900
352  * @tc.name    Fuzzy search by mailbox
353  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
354                email address, residence, remarks, AIM fuzzy search capabilities
355  * @tc.level   Level1
356  * @tc.size    MediumTest
357  * @tc.type    Function
358  */
HWTEST_F(ContactQueryTest, query_by_email_test_900, testing::ext::TestSize.Level1)359 HWTEST_F(ContactQueryTest, query_by_email_test_900, testing::ext::TestSize.Level1)
360 {
361     HILOG_INFO("-----query_by_email_test_900 is starting!-----");
362     std::string tag("query_by_email_test_900");
363     std::vector<std::string> columns;
364     columns.push_back("detail_info");
365     OHOS::DataShare::DataSharePredicates predicates;
366     predicates.Like("detail_info", "166%");
367     predicates.And();
368     predicates.EqualTo("type_id", "1");
369     predicates.And();
370     predicates.EqualTo("is_deleted", "0");
371     std::string contactData = "contact_data";
372     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
373 
374     OHOS::DataShare::DataShareValuesBucket values;
375     values.Put("detail_info", "1667894561@163.com");
376     CheckResultSet(values, resultSet, "query_by_email_test_900");
377     ClearData();
378 }
379 
380 /*
381  * @tc.number  query_by_address_test_1000
382  * @tc.name    Fuzzy search based on house
383  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
384                email address, residence, remarks, AIM fuzzy search capabilities
385  * @tc.level   Level1
386  * @tc.size    MediumTest
387  * @tc.type    Function
388  */
HWTEST_F(ContactQueryTest, query_by_address_test_1000, testing::ext::TestSize.Level1)389 HWTEST_F(ContactQueryTest, query_by_address_test_1000, testing::ext::TestSize.Level1)
390 {
391     HILOG_INFO("-----query_by_address_test_1000 is starting!-----");
392     std::string tag("query_by_address_test_1000");
393     std::vector<std::string> columns;
394     columns.push_back("detail_info");
395     OHOS::DataShare::DataSharePredicates predicates;
396     predicates.Like("detail_info", "%南京%");
397     predicates.And();
398     predicates.EqualTo("type_id", "7");
399     std::string contactData = "contact_data";
400     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
401 
402     OHOS::DataShare::DataShareValuesBucket values;
403     values.Put("detail_info", "南京市");
404     CheckResultSet(values, resultSet, "query_by_address_test_1000");
405     ClearData();
406 }
407 
408 /*
409  * @tc.number  query_by_note_test_1100
410  * @tc.name    Fuzzy search based on comments
411  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
412                email address, residence, remarks, AIM fuzzy search capabilities
413  * @tc.level   Level1
414  * @tc.size    MediumTest
415  * @tc.type    Function
416  */
HWTEST_F(ContactQueryTest, query_by_note_test_1100, testing::ext::TestSize.Level1)417 HWTEST_F(ContactQueryTest, query_by_note_test_1100, testing::ext::TestSize.Level1)
418 {
419     HILOG_INFO("-----query_by_note_test_1100 is starting!-----");
420     std::string tag("query_by_note_test_1100");
421     std::vector<std::string> columns;
422     columns.push_back("detail_info");
423     OHOS::DataShare::DataSharePredicates predicates;
424     predicates.Like("detail_info", "%mjava%");
425     predicates.And();
426     predicates.EqualTo("type_id", "10");
427     std::string contactData = "contact_data";
428     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
429 
430     OHOS::DataShare::DataShareValuesBucket values;
431     values.Put("detail_info", "LanguagemjavaC++");
432     CheckResultSet(values, resultSet, "query_by_note_test_1100");
433     ClearData();
434 }
435 
436 /*
437  * @tc.number  query_by_aim_test_1200
438  * @tc.name    Fuzzy search according to aim
439  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
440                email address, residence, remarks, AIM fuzzy search capabilities
441  * @tc.level   Level1
442  * @tc.size    MediumTest
443  * @tc.type    Function
444  */
HWTEST_F(ContactQueryTest, query_by_aim_test_1200, testing::ext::TestSize.Level1)445 HWTEST_F(ContactQueryTest, query_by_aim_test_1200, testing::ext::TestSize.Level1)
446 {
447     HILOG_INFO("-----query_by_aim_test_1200 is starting!-----");
448     std::string tag("query_by_aim_test_1200");
449     std::vector<std::string> columns;
450     columns.push_back("id");
451     columns.push_back("raw_contact_id");
452     columns.push_back("detail_info");
453     OHOS::DataShare::DataSharePredicates predicates;
454     predicates.Like("detail_info", "144%");
455     predicates.And();
456     predicates.EqualTo("type_id", "2");
457     std::string contactData = "contact_data";
458     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(contactData, columns, predicates);
459 
460     OHOS::DataShare::DataShareValuesBucket values;
461     values.Put("detail_info", "14487956@1.com");
462     CheckResultSet(values, resultSet, "query_by_aim_test_1200");
463     ClearData();
464 }
465 
466 /*
467  * @tc.number  abnormal_contact_Query_test_1300
468  * @tc.name    An incorrect field name was passed in during retrieval
469  * @tc.desc    Based on name, name pinyin, pinyin name, company, position, mobile phone number, nickname,
470                email address, residence, remarks, AIM fuzzy search capabilities
471  * @tc.level   Level1
472  * @tc.size    MediumTest
473  * @tc.type    Function
474  */
HWTEST_F(ContactQueryTest, abnormal_contact_Query_test_1300, testing::ext::TestSize.Level1)475 HWTEST_F(ContactQueryTest, abnormal_contact_Query_test_1300, testing::ext::TestSize.Level1)
476 {
477     HILOG_INFO("-----abnormal_contact_Query_test_1300 is starting!-----");
478     std::string tag("abnormal_contact_Query_test_1300");
479     std::vector<std::string> columns;
480     columns.push_back("id");
481     columns.push_back("search_name");
482     OHOS::DataShare::DataSharePredicates predicates;
483     predicates.Like("search_namesss", "%mjp%");
484     std::string searchContact = ContactTabName::SEARCH_CONTACT;
485     std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = ContactQuery(searchContact, columns, predicates);
486     // resultSet count 1
487     int rowCount = 0;
488     resultSet->GetRowCount(rowCount);
489     EXPECT_EQ(-1, rowCount);
490     ClearData();
491 }
492 } // namespace Test
493 } // namespace Contacts