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