1115cd2caSopenharmony_ci/*
2115cd2caSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3115cd2caSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4115cd2caSopenharmony_ci * you may not use this file except in compliance with the License.
5115cd2caSopenharmony_ci * You may obtain a copy of the License at
6115cd2caSopenharmony_ci *
7115cd2caSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8115cd2caSopenharmony_ci *
9115cd2caSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10115cd2caSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11115cd2caSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12115cd2caSopenharmony_ci * See the License for the specific language governing permissions and
13115cd2caSopenharmony_ci * limitations under the License.
14115cd2caSopenharmony_ci */
15115cd2caSopenharmony_ci
16115cd2caSopenharmony_ci#include "stability_test.h"
17115cd2caSopenharmony_ci
18115cd2caSopenharmony_ci#include <sys/time.h>
19115cd2caSopenharmony_ci
20115cd2caSopenharmony_ci#include "test_common.h"
21115cd2caSopenharmony_ci
22115cd2caSopenharmony_cinamespace Contacts {
23115cd2caSopenharmony_cinamespace Test {
24115cd2caSopenharmony_ciStabilityTest::StabilityTest()
25115cd2caSopenharmony_ci{
26115cd2caSopenharmony_ci}
27115cd2caSopenharmony_ci
28115cd2caSopenharmony_ciStabilityTest::~StabilityTest()
29115cd2caSopenharmony_ci{
30115cd2caSopenharmony_ci}
31115cd2caSopenharmony_ci
32115cd2caSopenharmony_civoid StabilityTest::DeleteContact()
33115cd2caSopenharmony_ci{
34115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
35115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
36115cd2caSopenharmony_ci    predicates.NotEqualTo("id", "0");
37115cd2caSopenharmony_ci    predicates.And();
38115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
39115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContact, predicates);
40115cd2caSopenharmony_ci    int count = 0;
41115cd2caSopenharmony_ci    int deleteCount = 9999;
42115cd2caSopenharmony_ci    std::vector<std::string> columns;
43115cd2caSopenharmony_ci    OHOS::Uri uriRawContactComplete(ContactsUri::DELETED_RAW_CONTACT);
44115cd2caSopenharmony_ci    while (count < deleteCount) {
45115cd2caSopenharmony_ci        int time = Time::SLEEP_TIME_MERGE_DELETE;
46115cd2caSopenharmony_ci        std::chrono::milliseconds dura(time);
47115cd2caSopenharmony_ci        std::this_thread::sleep_for(dura);
48115cd2caSopenharmony_ci        OHOS::DataShare::DataSharePredicates predicates2;
49115cd2caSopenharmony_ci        std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
50115cd2caSopenharmony_ci            contactsDataAbility.Query(uriRawContactComplete, predicates2, columns);
51115cd2caSopenharmony_ci        resultSet->GetRowCount(count);
52115cd2caSopenharmony_ci        resultSet->Close();
53115cd2caSopenharmony_ci    }
54115cd2caSopenharmony_ci    int time = Time::SLEEP_TIME_MERGE_DELETE;
55115cd2caSopenharmony_ci    std::chrono::milliseconds dura(time);
56115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
57115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
58115cd2caSopenharmony_ci    predicates3.NotEqualTo("id", "0");
59115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContactComplete, predicates3);
60115cd2caSopenharmony_ci}
61115cd2caSopenharmony_ci
62115cd2caSopenharmony_ci/*
63115cd2caSopenharmony_ci * @tc.number  raw_contact_insert_performance_test_900
64115cd2caSopenharmony_ci * @tc.name    raw_contact stability testing add 10000
65115cd2caSopenharmony_ci * @tc.desc    add 10000
66115cd2caSopenharmony_ci * @tc.level   Level1
67115cd2caSopenharmony_ci * @tc.size    MediumTest
68115cd2caSopenharmony_ci * @tc.type    Function
69115cd2caSopenharmony_ci */
70115cd2caSopenharmony_ciHWTEST_F(StabilityTest, raw_contact_insert_performance_test_900, testing::ext::TestSize.Level1)
71115cd2caSopenharmony_ci{
72115cd2caSopenharmony_ci    HILOG_INFO("--- raw_contact_insert_performance_test_900 is starting! ---");
73115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
74115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> values;
75115cd2caSopenharmony_ci    for (int i = 0; i < 10000; i++) {
76115cd2caSopenharmony_ci        OHOS::DataShare::DataShareValuesBucket rawContactValues;
77115cd2caSopenharmony_ci        std::string name("小严");
78115cd2caSopenharmony_ci        name.append(std::to_string(i + 1));
79115cd2caSopenharmony_ci        rawContactValues.Put("display_name", name);
80115cd2caSopenharmony_ci        rawContactValues.Put("company", "company");
81115cd2caSopenharmony_ci        rawContactValues.Put("position", "position");
82115cd2caSopenharmony_ci        values.push_back(rawContactValues);
83115cd2caSopenharmony_ci    }
84115cd2caSopenharmony_ci    int batchInsertCode = contactsDataAbility.BatchInsert(uriRawContact, values);
85115cd2caSopenharmony_ci    EXPECT_EQ(batchInsertCode, 0);
86115cd2caSopenharmony_ci}
87115cd2caSopenharmony_ci
88115cd2caSopenharmony_ci/*
89115cd2caSopenharmony_ci * @tc.number  raw_contact_update_performance_test_1000
90115cd2caSopenharmony_ci * @tc.name    raw_contact stability testing update 10000
91115cd2caSopenharmony_ci * @tc.desc    update 10000
92115cd2caSopenharmony_ci * @tc.level   Level1
93115cd2caSopenharmony_ci * @tc.size    MediumTest
94115cd2caSopenharmony_ci * @tc.type    Function
95115cd2caSopenharmony_ci */
96115cd2caSopenharmony_ciHWTEST_F(StabilityTest, raw_contact_update_performance_test_1000, testing::ext::TestSize.Level1)
97115cd2caSopenharmony_ci{
98115cd2caSopenharmony_ci    HILOG_INFO("--- raw_contact_update_performance_test_1000 is starting! ---");
99115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
100115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
101115cd2caSopenharmony_ci    updateValues.Put("favorite", 1);
102115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
103115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
104115cd2caSopenharmony_ci    predicates.And();
105115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
106115cd2caSopenharmony_ci    int updateCode = contactsDataAbility.Update(uriRawContact, predicates, updateValues);
107115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
108115cd2caSopenharmony_ci}
109115cd2caSopenharmony_ci
110115cd2caSopenharmony_ci/*
111115cd2caSopenharmony_ci * @tc.number  raw_contact_query_performance_test_1100
112115cd2caSopenharmony_ci * @tc.name    raw_contact stability testing query 10000
113115cd2caSopenharmony_ci * @tc.desc    query 10000
114115cd2caSopenharmony_ci * @tc.level   Level1
115115cd2caSopenharmony_ci * @tc.size    MediumTest
116115cd2caSopenharmony_ci * @tc.type    Function
117115cd2caSopenharmony_ci */
118115cd2caSopenharmony_ciHWTEST_F(StabilityTest, raw_contact_query_performance_test_1100, testing::ext::TestSize.Level1)
119115cd2caSopenharmony_ci{
120115cd2caSopenharmony_ci    HILOG_INFO("--- raw_contact_query_performance_test_1100 is starting! ---");
121115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
122115cd2caSopenharmony_ci    std::vector<std::string> columns;
123115cd2caSopenharmony_ci    columns.push_back("id");
124115cd2caSopenharmony_ci    columns.push_back("display_name");
125115cd2caSopenharmony_ci    columns.push_back("company");
126115cd2caSopenharmony_ci    columns.push_back("position");
127115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
128115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
129115cd2caSopenharmony_ci    predicates.And();
130115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
131115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
132115cd2caSopenharmony_ci        contactsDataAbility.Query(uriRawContact, predicates, columns);
133115cd2caSopenharmony_ci    int rowCount = 0;
134115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
135115cd2caSopenharmony_ci    EXPECT_GT(rowCount, 9999);
136115cd2caSopenharmony_ci    resultSet->Close();
137115cd2caSopenharmony_ci}
138115cd2caSopenharmony_ci
139115cd2caSopenharmony_ci/*
140115cd2caSopenharmony_ci * @tc.number  raw_contact_delete_performance_test_1200
141115cd2caSopenharmony_ci * @tc.name    raw_contact stability testing delete 10000
142115cd2caSopenharmony_ci * @tc.desc    delete 10000
143115cd2caSopenharmony_ci * @tc.level   Level1
144115cd2caSopenharmony_ci * @tc.size    MediumTest
145115cd2caSopenharmony_ci * @tc.type    Function
146115cd2caSopenharmony_ci */
147115cd2caSopenharmony_ciHWTEST_F(StabilityTest, raw_contact_delete_performance_test_1200, testing::ext::TestSize.Level1)
148115cd2caSopenharmony_ci{
149115cd2caSopenharmony_ci    HILOG_INFO("--- raw_contact_delete_performance_test_1200 is starting! ---");
150115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
151115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
152115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
153115cd2caSopenharmony_ci    predicates.And();
154115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
155115cd2caSopenharmony_ci    int deleteCode = contactsDataAbility.Delete(uriRawContact, predicates);
156115cd2caSopenharmony_ci    HILOG_INFO("raw_contact_delete_performance_test_1200 : deleteCode = %{public}d", deleteCode);
157115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
158115cd2caSopenharmony_ci}
159115cd2caSopenharmony_ci
160115cd2caSopenharmony_ci/*
161115cd2caSopenharmony_ci * @tc.number  contact_data_insert_performance_test_1300
162115cd2caSopenharmony_ci * @tc.name    contact_data stability testing add 10000
163115cd2caSopenharmony_ci * @tc.desc    add 10000
164115cd2caSopenharmony_ci * @tc.level   Level1
165115cd2caSopenharmony_ci * @tc.size    MediumTest
166115cd2caSopenharmony_ci * @tc.type    Function
167115cd2caSopenharmony_ci */
168115cd2caSopenharmony_ciHWTEST_F(StabilityTest, contact_data_insert_performance_test_1300, testing::ext::TestSize.Level1)
169115cd2caSopenharmony_ci{
170115cd2caSopenharmony_ci    OHOS::Uri uriRawContact(ContactsUri::RAW_CONTACT);
171115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket rawContactValues;
172115cd2caSopenharmony_ci    std::string rawName("xiaoyan");
173115cd2caSopenharmony_ci    rawContactValues.Put("display_name", rawName);
174115cd2caSopenharmony_ci    rawContactValues.Put("company", "company");
175115cd2caSopenharmony_ci    rawContactValues.Put("position", "position");
176115cd2caSopenharmony_ci    int rawContactId = contactsDataAbility.Insert(uriRawContact, rawContactValues);
177115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
178115cd2caSopenharmony_ci    predicates.NotEqualTo("id", "0");
179115cd2caSopenharmony_ci    predicates.And();
180115cd2caSopenharmony_ci    predicates.EqualTo("is_deleted", "0");
181115cd2caSopenharmony_ci    contactsDataAbility.Delete(uriRawContact, predicates);
182115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
183115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> values;
184115cd2caSopenharmony_ci    for (int i = 0; i < 10000; i++) {
185115cd2caSopenharmony_ci        OHOS::DataShare::DataShareValuesBucket contactDataValues;
186115cd2caSopenharmony_ci        std::string name("xiaoyan");
187115cd2caSopenharmony_ci        name.append(std::to_string(i + 1));
188115cd2caSopenharmony_ci        contactDataValues.Put("raw_contact_id", rawContactId);
189115cd2caSopenharmony_ci        contactDataValues.Put("content_type", "name");
190115cd2caSopenharmony_ci        contactDataValues.Put("detail_info", name);
191115cd2caSopenharmony_ci        values.push_back(contactDataValues);
192115cd2caSopenharmony_ci    }
193115cd2caSopenharmony_ci    int batchInsertCode = contactsDataAbility.BatchInsert(uriContactData, values);
194115cd2caSopenharmony_ci    EXPECT_EQ(batchInsertCode, 0);
195115cd2caSopenharmony_ci}
196115cd2caSopenharmony_ci
197115cd2caSopenharmony_ci/*
198115cd2caSopenharmony_ci * @tc.number  contact_data_update_performance_test_1400
199115cd2caSopenharmony_ci * @tc.name    contact_data stability testing update 10000
200115cd2caSopenharmony_ci * @tc.desc    update 10000
201115cd2caSopenharmony_ci * @tc.level   Level1
202115cd2caSopenharmony_ci * @tc.size    MediumTest
203115cd2caSopenharmony_ci * @tc.type    Function
204115cd2caSopenharmony_ci */
205115cd2caSopenharmony_ciHWTEST_F(StabilityTest, contact_data_update_performance_test_1400, testing::ext::TestSize.Level1)
206115cd2caSopenharmony_ci{
207115cd2caSopenharmony_ci    HILOG_INFO("--- contact_data_update_performance_test_1400 is starting! ---");
208115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
209115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
210115cd2caSopenharmony_ci    updateValues.Put("syn_1", "test");
211115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
212115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
213115cd2caSopenharmony_ci    int updateCode = contactsDataAbility.Update(uriContactData, predicates, updateValues);
214115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
215115cd2caSopenharmony_ci}
216115cd2caSopenharmony_ci
217115cd2caSopenharmony_ci/*
218115cd2caSopenharmony_ci * @tc.number  contact_data_query_performance_test_1500
219115cd2caSopenharmony_ci * @tc.name    contact_data stability testing query 10000
220115cd2caSopenharmony_ci * @tc.desc    query 10000
221115cd2caSopenharmony_ci * @tc.level   Level1
222115cd2caSopenharmony_ci * @tc.size    MediumTest
223115cd2caSopenharmony_ci * @tc.type    Function
224115cd2caSopenharmony_ci */
225115cd2caSopenharmony_ciHWTEST_F(StabilityTest, contact_data_query_performance_test_1500, testing::ext::TestSize.Level1)
226115cd2caSopenharmony_ci{
227115cd2caSopenharmony_ci    HILOG_INFO("--- contact_data_query_performance_test_1500 is starting! ---");
228115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
229115cd2caSopenharmony_ci    std::vector<std::string> columns;
230115cd2caSopenharmony_ci    columns.push_back("raw_contact_id");
231115cd2caSopenharmony_ci    columns.push_back("detail_info");
232115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
233115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
234115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
235115cd2caSopenharmony_ci        contactsDataAbility.Query(uriContactData, predicates, columns);
236115cd2caSopenharmony_ci    int rowCount = 0;
237115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
238115cd2caSopenharmony_ci    EXPECT_GT(rowCount, 9999);
239115cd2caSopenharmony_ci    resultSet->Close();
240115cd2caSopenharmony_ci}
241115cd2caSopenharmony_ci
242115cd2caSopenharmony_ci/*
243115cd2caSopenharmony_ci * @tc.number  contact_data_delete_performance_test_1600
244115cd2caSopenharmony_ci * @tc.name    contact_data stability testing delete 10000
245115cd2caSopenharmony_ci * @tc.desc    delete 10000
246115cd2caSopenharmony_ci * @tc.level   Level1
247115cd2caSopenharmony_ci * @tc.size    MediumTest
248115cd2caSopenharmony_ci * @tc.type    Function
249115cd2caSopenharmony_ci */
250115cd2caSopenharmony_ciHWTEST_F(StabilityTest, contact_data_delete_performance_test_1600, testing::ext::TestSize.Level1)
251115cd2caSopenharmony_ci{
252115cd2caSopenharmony_ci    HILOG_INFO("--- contact_data_delete_performance_test_1600 is starting! ---");
253115cd2caSopenharmony_ci    OHOS::Uri uriContactData(ContactsUri::CONTACT_DATA);
254115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
255115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
256115cd2caSopenharmony_ci    int deleteCode = contactsDataAbility.Delete(uriContactData, predicates);
257115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
258115cd2caSopenharmony_ci}
259115cd2caSopenharmony_ci
260115cd2caSopenharmony_ci/*
261115cd2caSopenharmony_ci * @tc.number  calllog_insert_performance_test_100
262115cd2caSopenharmony_ci * @tc.name    calllog calllog stability testing add 10000
263115cd2caSopenharmony_ci * @tc.desc    add 10000
264115cd2caSopenharmony_ci * @tc.level   Level1
265115cd2caSopenharmony_ci * @tc.size    MediumTest
266115cd2caSopenharmony_ci * @tc.type    Function
267115cd2caSopenharmony_ci */
268115cd2caSopenharmony_ciHWTEST_F(StabilityTest, calllog_insert_performance_test_100, testing::ext::TestSize.Level1)
269115cd2caSopenharmony_ci{
270115cd2caSopenharmony_ci    OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
271115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicatesOne;
272115cd2caSopenharmony_ci    predicatesOne.GreaterThan("id", "0");
273115cd2caSopenharmony_ci    HILOG_INFO("calllog_insert_performance_test_100 deleted  start! ");
274115cd2caSopenharmony_ci    calllogAbility.Delete(uriCalllog, predicatesOne);
275115cd2caSopenharmony_ci    HILOG_INFO("--- calllog_insert_performance_test_100 is starting! ---");
276115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> values;
277115cd2caSopenharmony_ci    for (int i = 0; i < 10000; i++) {
278115cd2caSopenharmony_ci        OHOS::DataShare::DataShareValuesBucket calllogValues;
279115cd2caSopenharmony_ci        calllogValues.Put("phone_number", std::to_string(i + 1));
280115cd2caSopenharmony_ci        values.push_back(calllogValues);
281115cd2caSopenharmony_ci    }
282115cd2caSopenharmony_ci    int batchInsertCode = calllogAbility.BatchInsert(uriCalllog, values);
283115cd2caSopenharmony_ci    EXPECT_EQ(batchInsertCode, 0);
284115cd2caSopenharmony_ci}
285115cd2caSopenharmony_ci
286115cd2caSopenharmony_ci/*
287115cd2caSopenharmony_ci * @tc.number  calllog_update_performance_test_200
288115cd2caSopenharmony_ci * @tc.name    calllog calllog stability testing update 10000
289115cd2caSopenharmony_ci * @tc.desc    update 10000
290115cd2caSopenharmony_ci * @tc.level   Level1
291115cd2caSopenharmony_ci * @tc.size    MediumTest
292115cd2caSopenharmony_ci * @tc.type    Function
293115cd2caSopenharmony_ci */
294115cd2caSopenharmony_ciHWTEST_F(StabilityTest, calllog_update_performance_test_200, testing::ext::TestSize.Level1)
295115cd2caSopenharmony_ci{
296115cd2caSopenharmony_ci    HILOG_INFO("--- calllog_update_performance_test_200 is starting! ---");
297115cd2caSopenharmony_ci    OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
298115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
299115cd2caSopenharmony_ci    updateValues.Put("answer_state", 1);
300115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
301115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
302115cd2caSopenharmony_ci    int updateCode = calllogAbility.Update(uriCalllog, predicates, updateValues);
303115cd2caSopenharmony_ci    HILOG_INFO("calllog_update_performance_test_200 : updateCode = %{public}d", updateCode);
304115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
305115cd2caSopenharmony_ci}
306115cd2caSopenharmony_ci
307115cd2caSopenharmony_ci/*
308115cd2caSopenharmony_ci * @tc.number  calllog_query_performance_test_300
309115cd2caSopenharmony_ci * @tc.name    calllog calllog stability testing query 10000
310115cd2caSopenharmony_ci * @tc.desc    query 10000
311115cd2caSopenharmony_ci * @tc.level   Level1
312115cd2caSopenharmony_ci * @tc.size    MediumTest
313115cd2caSopenharmony_ci * @tc.type    Function
314115cd2caSopenharmony_ci */
315115cd2caSopenharmony_ciHWTEST_F(StabilityTest, calllog_query_performance_test_300, testing::ext::TestSize.Level1)
316115cd2caSopenharmony_ci{
317115cd2caSopenharmony_ci    HILOG_INFO("--- calllog_query_performance_test_300 is starting! ---");
318115cd2caSopenharmony_ci    OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
319115cd2caSopenharmony_ci    std::vector<std::string> columns;
320115cd2caSopenharmony_ci    columns.push_back("id");
321115cd2caSopenharmony_ci    columns.push_back("phone_number");
322115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
323115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
324115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
325115cd2caSopenharmony_ci        calllogAbility.Query(uriCalllog, predicates, columns);
326115cd2caSopenharmony_ci    int rowCount = 0;
327115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
328115cd2caSopenharmony_ci    EXPECT_GT(rowCount, 9999);
329115cd2caSopenharmony_ci    resultSet->Close();
330115cd2caSopenharmony_ci}
331115cd2caSopenharmony_ci
332115cd2caSopenharmony_ci/*
333115cd2caSopenharmony_ci * @tc.number  calllog_delete_performance_test_400
334115cd2caSopenharmony_ci * @tc.name    calllog calllog stability testing delete 10000
335115cd2caSopenharmony_ci * @tc.desc    delete 10000
336115cd2caSopenharmony_ci * @tc.level   Level1
337115cd2caSopenharmony_ci * @tc.size    MediumTest
338115cd2caSopenharmony_ci * @tc.type    Function
339115cd2caSopenharmony_ci */
340115cd2caSopenharmony_ciHWTEST_F(StabilityTest, calllog_delete_performance_test_400, testing::ext::TestSize.Level1)
341115cd2caSopenharmony_ci{
342115cd2caSopenharmony_ci    HILOG_INFO("--- calllog_delete_performance_test_400 is starting! ---");
343115cd2caSopenharmony_ci    OHOS::Uri uriCalllog(CallLogUri::CALL_LOG);
344115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
345115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
346115cd2caSopenharmony_ci    int deleteCode = calllogAbility.Delete(uriCalllog, predicates);
347115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
348115cd2caSopenharmony_ci}
349115cd2caSopenharmony_ci
350115cd2caSopenharmony_ci/*
351115cd2caSopenharmony_ci * @tc.number  voicemail_insert_performance_test_500
352115cd2caSopenharmony_ci * @tc.name    voicemail stability testing delete 10000
353115cd2caSopenharmony_ci * @tc.desc    delete 10000
354115cd2caSopenharmony_ci * @tc.level   Level1
355115cd2caSopenharmony_ci * @tc.size    MediumTest
356115cd2caSopenharmony_ci * @tc.type    Function
357115cd2caSopenharmony_ci */
358115cd2caSopenharmony_ciHWTEST_F(StabilityTest, voicemail_insert_performance_test_500, testing::ext::TestSize.Level1)
359115cd2caSopenharmony_ci{
360115cd2caSopenharmony_ci    OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
361115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicatesOne;
362115cd2caSopenharmony_ci    predicatesOne.GreaterThan("id", "0");
363115cd2caSopenharmony_ci    HILOG_INFO("voicemail_insert_performance_test_500 deleted  start! ");
364115cd2caSopenharmony_ci    voicemailAbility.Delete(uriVoiceMail, predicatesOne);
365115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_insert_performance_test_500 is starting! ---");
366115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> values;
367115cd2caSopenharmony_ci    for (int i = 0; i < 10000; i++) {
368115cd2caSopenharmony_ci        OHOS::DataShare::DataShareValuesBucket voicemailValues;
369115cd2caSopenharmony_ci        voicemailValues.Put("phone_number", std::to_string(i + 1));
370115cd2caSopenharmony_ci        values.push_back(voicemailValues);
371115cd2caSopenharmony_ci    }
372115cd2caSopenharmony_ci    int batchInsertCode = voicemailAbility.BatchInsert(uriVoiceMail, values);
373115cd2caSopenharmony_ci    EXPECT_EQ(batchInsertCode, 0);
374115cd2caSopenharmony_ci}
375115cd2caSopenharmony_ci
376115cd2caSopenharmony_ci/*
377115cd2caSopenharmony_ci * @tc.number  voicemail_update_performance_test_600
378115cd2caSopenharmony_ci * @tc.name    voicemail stability testing update 10000
379115cd2caSopenharmony_ci * @tc.desc    update 10000
380115cd2caSopenharmony_ci * @tc.level   Level1
381115cd2caSopenharmony_ci * @tc.size    MediumTest
382115cd2caSopenharmony_ci * @tc.type    Function
383115cd2caSopenharmony_ci */
384115cd2caSopenharmony_ciHWTEST_F(StabilityTest, voicemail_update_performance_test_600, testing::ext::TestSize.Level1)
385115cd2caSopenharmony_ci{
386115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_update_performance_test_600 is starting! ---");
387115cd2caSopenharmony_ci    OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
388115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
389115cd2caSopenharmony_ci    updateValues.Put("origin_type", "origin");
390115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
391115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
392115cd2caSopenharmony_ci    int updateCode = voicemailAbility.Update(uriVoiceMail, predicates, updateValues);
393115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
394115cd2caSopenharmony_ci}
395115cd2caSopenharmony_ci
396115cd2caSopenharmony_ci/*
397115cd2caSopenharmony_ci * @tc.number  voicemail_query_performance_test_700
398115cd2caSopenharmony_ci * @tc.name    voicemail stability testing query 10000
399115cd2caSopenharmony_ci * @tc.desc    query 10000
400115cd2caSopenharmony_ci * @tc.level   Level1
401115cd2caSopenharmony_ci * @tc.size    MediumTest
402115cd2caSopenharmony_ci * @tc.type    Function
403115cd2caSopenharmony_ci */
404115cd2caSopenharmony_ciHWTEST_F(StabilityTest, voicemail_query_performance_test_700, testing::ext::TestSize.Level1)
405115cd2caSopenharmony_ci{
406115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_query_performance_test_700 is starting! ---");
407115cd2caSopenharmony_ci    OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
408115cd2caSopenharmony_ci    std::vector<std::string> columns;
409115cd2caSopenharmony_ci    columns.push_back("id");
410115cd2caSopenharmony_ci    columns.push_back("phone_number");
411115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
412115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
413115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
414115cd2caSopenharmony_ci        voicemailAbility.Query(uriVoiceMail, predicates, columns);
415115cd2caSopenharmony_ci    int rowCount = 0;
416115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
417115cd2caSopenharmony_ci    EXPECT_GT(rowCount, 9999);
418115cd2caSopenharmony_ci    resultSet->Close();
419115cd2caSopenharmony_ci}
420115cd2caSopenharmony_ci
421115cd2caSopenharmony_ci/*
422115cd2caSopenharmony_ci * @tc.number  voicemail_delete_performance_test_800
423115cd2caSopenharmony_ci * @tc.name    voicemail stability testing delete 10000
424115cd2caSopenharmony_ci * @tc.desc    delete 10000
425115cd2caSopenharmony_ci * @tc.level   Level1
426115cd2caSopenharmony_ci * @tc.size    MediumTest
427115cd2caSopenharmony_ci * @tc.type    Function
428115cd2caSopenharmony_ci */
429115cd2caSopenharmony_ciHWTEST_F(StabilityTest, voicemail_delete_performance_test_800, testing::ext::TestSize.Level1)
430115cd2caSopenharmony_ci{
431115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_delete_performance_test_800 is starting! ---");
432115cd2caSopenharmony_ci    OHOS::Uri uriVoiceMail(VoicemailUri::VOICEMAIL);
433115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
434115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
435115cd2caSopenharmony_ci    int deleteCode = voicemailAbility.Delete(uriVoiceMail, predicates);
436115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
437115cd2caSopenharmony_ci}
438115cd2caSopenharmony_ci
439115cd2caSopenharmony_ciHWTEST_F(StabilityTest, PerformanceTestDeleted, testing::ext::TestSize.Level1)
440115cd2caSopenharmony_ci{
441115cd2caSopenharmony_ci    DeleteContact();
442115cd2caSopenharmony_ci}
443115cd2caSopenharmony_ci} // namespace Test
444115cd2caSopenharmony_ci} // namespace Contacts