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 "voicemailability_test.h"
17115cd2caSopenharmony_ci
18115cd2caSopenharmony_ci#include "data_ability_operation_builder.h"
19115cd2caSopenharmony_ci#include "random_number_utils.h"
20115cd2caSopenharmony_ci
21115cd2caSopenharmony_ciusing namespace OHOS::Contacts;
22115cd2caSopenharmony_ci
23115cd2caSopenharmony_cinamespace Contacts {
24115cd2caSopenharmony_cinamespace Test {
25115cd2caSopenharmony_ciVoicemailAbilityTest::VoicemailAbilityTest()
26115cd2caSopenharmony_ci{
27115cd2caSopenharmony_ci}
28115cd2caSopenharmony_ci
29115cd2caSopenharmony_ciVoicemailAbilityTest::~VoicemailAbilityTest()
30115cd2caSopenharmony_ci{
31115cd2caSopenharmony_ci}
32115cd2caSopenharmony_ci
33115cd2caSopenharmony_ciint64_t VoicemailAbilityTest::VoicemailStatusInsert(std::string phoneNumber, int status)
34115cd2caSopenharmony_ci{
35115cd2caSopenharmony_ci    OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
36115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
37115cd2caSopenharmony_ci    voicemailValues.Put("phone_number", phoneNumber);
38115cd2caSopenharmony_ci    voicemailValues.Put("voice_status", status);
39115cd2caSopenharmony_ci    int64_t code = voicemailAbility.Insert(uriVoicemail, voicemailValues);
40115cd2caSopenharmony_ci    return code;
41115cd2caSopenharmony_ci}
42115cd2caSopenharmony_ci
43115cd2caSopenharmony_ciint VoicemailAbilityTest::VoicemailUpdate(
44115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues, OHOS::DataShare::DataSharePredicates predicates)
45115cd2caSopenharmony_ci{
46115cd2caSopenharmony_ci    OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
47115cd2caSopenharmony_ci    int code = voicemailAbility.Update(uriVoicemail, predicates, updateValues);
48115cd2caSopenharmony_ci    return code;
49115cd2caSopenharmony_ci}
50115cd2caSopenharmony_ci
51115cd2caSopenharmony_ciint VoicemailAbilityTest::VoicemailDelete(OHOS::DataShare::DataSharePredicates predicates)
52115cd2caSopenharmony_ci{
53115cd2caSopenharmony_ci    OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
54115cd2caSopenharmony_ci    int code = voicemailAbility.Delete(uriVoicemail, predicates);
55115cd2caSopenharmony_ci    return code;
56115cd2caSopenharmony_ci}
57115cd2caSopenharmony_ci
58115cd2caSopenharmony_cistd::shared_ptr<OHOS::DataShare::DataShareResultSet> VoicemailAbilityTest::VoicemailQuery(
59115cd2caSopenharmony_ci    std::vector<std::string> columns, OHOS::DataShare::DataSharePredicates predicates)
60115cd2caSopenharmony_ci{
61115cd2caSopenharmony_ci    OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
62115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
63115cd2caSopenharmony_ci        voicemailAbility.Query(uriVoicemail, predicates, columns);
64115cd2caSopenharmony_ci    return resultSet;
65115cd2caSopenharmony_ci}
66115cd2caSopenharmony_ci
67115cd2caSopenharmony_civoid VoicemailAbilityTest::CheckResultSetBatch(OHOS::DataShare::DataSharePredicates predicates,
68115cd2caSopenharmony_ci    std::vector<std::string> &columns, OHOS::DataShare::DataShareValuesBucket values, std::string testName)
69115cd2caSopenharmony_ci{
70115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
71115cd2caSopenharmony_ci    int rowCount = 0;
72115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
73115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
74115cd2caSopenharmony_ci    CheckResultSet(values, resultSet, testName);
75115cd2caSopenharmony_ci}
76115cd2caSopenharmony_ci
77115cd2caSopenharmony_ciint VoicemailAbilityTest::VoicemailInsertValues(OHOS::DataShare::DataShareValuesBucket &values)
78115cd2caSopenharmony_ci{
79115cd2caSopenharmony_ci    OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
80115cd2caSopenharmony_ci    int64_t code = voicemailAbility.Insert(uriVoicemail, values);
81115cd2caSopenharmony_ci    int result = code;
82115cd2caSopenharmony_ci    return result;
83115cd2caSopenharmony_ci}
84115cd2caSopenharmony_ci
85115cd2caSopenharmony_ciint64_t VoicemailAbilityTest::VoicemailInsertValue(std::string displayName,
86115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket &values)
87115cd2caSopenharmony_ci{
88115cd2caSopenharmony_ci    OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
89115cd2caSopenharmony_ci    values.Put("display_name", displayName);
90115cd2caSopenharmony_ci    int64_t code = voicemailAbility.Insert(uriVoicemail, values);
91115cd2caSopenharmony_ci    return code;
92115cd2caSopenharmony_ci}
93115cd2caSopenharmony_ci
94115cd2caSopenharmony_ciOHOS::DataShare::DataShareValuesBucket VoicemailAbilityTest::GetVoiceMailValues(
95115cd2caSopenharmony_ci    int columnsStart, int columnsEnd, std::vector<std::string> &columns)
96115cd2caSopenharmony_ci{
97115cd2caSopenharmony_ci    std::string voiceMailTestStringValue = std::to_string(ContactsRand());
98115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket;
99115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
100115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(8);
101115cd2caSopenharmony_ci    valuesBucket.Put("phone_number", phoneNumber + voiceMailTestStringValue);
102115cd2caSopenharmony_ci    valuesBucket.Put("quicksearch_key", "dfquicksearch_key" + voiceMailTestStringValue);
103115cd2caSopenharmony_ci    valuesBucket.Put("display_name", "dfName" + voiceMailTestStringValue);
104115cd2caSopenharmony_ci    valuesBucket.Put("voicemail_uri", "dfUri::voicemail_uri" + voiceMailTestStringValue);
105115cd2caSopenharmony_ci    valuesBucket.Put("voicemail_type", ContactsRand());
106115cd2caSopenharmony_ci    valuesBucket.Put("voice_file_size", ContactsRand());
107115cd2caSopenharmony_ci    valuesBucket.Put("voice_duration", ContactsRand());
108115cd2caSopenharmony_ci    valuesBucket.Put("voice_status", ContactsRand());
109115cd2caSopenharmony_ci    valuesBucket.Put("origin_type", "origin_type" + voiceMailTestStringValue);
110115cd2caSopenharmony_ci    valuesBucket.Put("create_time", ContactsRand());
111115cd2caSopenharmony_ci    std::vector<std::string> columnsTemp;
112115cd2caSopenharmony_ci    GetVoiceMailValuesColumn(columnsTemp);
113115cd2caSopenharmony_ci    int allSize = columnsTemp.size();
114115cd2caSopenharmony_ci    for (int i = 0; i < allSize; i++) {
115115cd2caSopenharmony_ci        if (i >= columnsStart && i < columnsEnd) {
116115cd2caSopenharmony_ci            columns.push_back(columnsTemp[i]);
117115cd2caSopenharmony_ci        } else {
118115cd2caSopenharmony_ci            valuesBucket.Put(columnsTemp[i], "");
119115cd2caSopenharmony_ci        }
120115cd2caSopenharmony_ci    }
121115cd2caSopenharmony_ci    return valuesBucket;
122115cd2caSopenharmony_ci}
123115cd2caSopenharmony_ci
124115cd2caSopenharmony_civoid VoicemailAbilityTest::GetVoiceMailValuesColumn(std::vector<std::string> &columns)
125115cd2caSopenharmony_ci{
126115cd2caSopenharmony_ci    columns.push_back("phone_number");
127115cd2caSopenharmony_ci    columns.push_back("quicksearch_key");
128115cd2caSopenharmony_ci    columns.push_back("display_name");
129115cd2caSopenharmony_ci    columns.push_back("voicemail_uri");
130115cd2caSopenharmony_ci    columns.push_back("voicemail_type");
131115cd2caSopenharmony_ci    columns.push_back("voice_file_size");
132115cd2caSopenharmony_ci    columns.push_back("voice_duration");
133115cd2caSopenharmony_ci    columns.push_back("voice_status");
134115cd2caSopenharmony_ci    columns.push_back("origin_type");
135115cd2caSopenharmony_ci    columns.push_back("create_time");
136115cd2caSopenharmony_ci}
137115cd2caSopenharmony_ci
138115cd2caSopenharmony_civoid VoicemailAbilityTest::ClearVoicemail()
139115cd2caSopenharmony_ci{
140115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
141115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
142115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates);
143115cd2caSopenharmony_ci    EXPECT_EQ(0, deleteCode);
144115cd2caSopenharmony_ci}
145115cd2caSopenharmony_ci
146115cd2caSopenharmony_ci/*
147115cd2caSopenharmony_ci * @tc.number  voicemail_Insert_test_100
148115cd2caSopenharmony_ci * @tc.name    Add a voice mailbox with status 1 and verify that the insertion was successful
149115cd2caSopenharmony_ci * @tc.desc    Added ability to voice mailbox status
150115cd2caSopenharmony_ci * @tc.level   Level1
151115cd2caSopenharmony_ci * @tc.size    MediumTest
152115cd2caSopenharmony_ci * @tc.type    Function
153115cd2caSopenharmony_ci */
154115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_100, testing::ext::TestSize.Level1)
155115cd2caSopenharmony_ci{
156115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Insert_test_100 is starting! ---");
157115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
158115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
159115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(6);
160115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
161115cd2caSopenharmony_ci    values.Put("voice_status", 1);
162115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
163115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Insert_test_100 : voicemailId = %{public}d", voicemailId);
164115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
165115cd2caSopenharmony_ci
166115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
167115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
168115cd2caSopenharmony_ci    std::vector<std::string> columns;
169115cd2caSopenharmony_ci    columns.push_back("phone_number");
170115cd2caSopenharmony_ci    columns.push_back("voice_status");
171115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
172115cd2caSopenharmony_ci    int rowCount = 0;
173115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
174115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
175115cd2caSopenharmony_ci    CheckResultSet(values, result, "voicemail_Insert_test_100");
176115cd2caSopenharmony_ci    ClearVoicemail();
177115cd2caSopenharmony_ci}
178115cd2caSopenharmony_ci
179115cd2caSopenharmony_ci/*
180115cd2caSopenharmony_ci * @tc.number  voicemail_Insert_test_200
181115cd2caSopenharmony_ci * @tc.name    Add a single piece of voicemail data and verify whether the insertion is successful
182115cd2caSopenharmony_ci * @tc.desc    New capabilities for voicemail data
183115cd2caSopenharmony_ci * @tc.level   Level1
184115cd2caSopenharmony_ci * @tc.size    MediumTest
185115cd2caSopenharmony_ci * @tc.type    Function
186115cd2caSopenharmony_ci */
187115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_200, testing::ext::TestSize.Level1)
188115cd2caSopenharmony_ci{
189115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Insert_test_200 is staring! ---");
190115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
191115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
192115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(6);
193115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
194115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
195115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Insert_test_200 : voicemailId = %{public}d", voicemailId);
196115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
197115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
198115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
199115cd2caSopenharmony_ci    std::vector<std::string> columns;
200115cd2caSopenharmony_ci    columns.push_back("phone_number");
201115cd2caSopenharmony_ci    columns.push_back("id");
202115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
203115cd2caSopenharmony_ci    int rowCount = 0;
204115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
205115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
206115cd2caSopenharmony_ci    CheckResultSet(values, result, "voicemail_Insert_test_200");
207115cd2caSopenharmony_ci    ClearVoicemail();
208115cd2caSopenharmony_ci}
209115cd2caSopenharmony_ci
210115cd2caSopenharmony_ci/*
211115cd2caSopenharmony_ci * @tc.number  voicemail_Insert_test_300
212115cd2caSopenharmony_ci * @tc.name    Add a full field data to voicemail and verify that the insertion was successful
213115cd2caSopenharmony_ci * @tc.desc    Added ability to call record
214115cd2caSopenharmony_ci * @tc.level   Level1
215115cd2caSopenharmony_ci * @tc.size    MediumTest
216115cd2caSopenharmony_ci * @tc.type    Function
217115cd2caSopenharmony_ci */
218115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_300, testing::ext::TestSize.Level1)
219115cd2caSopenharmony_ci{
220115cd2caSopenharmony_ci    HILOG_INFO("-----voicemail_Insert_test_300 is starting!-----");
221115cd2caSopenharmony_ci    std::vector<std::string> columns;
222115cd2caSopenharmony_ci    GetVoiceMailValuesColumn(columns);
223115cd2caSopenharmony_ci    int columnsSize = 10;
224115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetVoiceMailValues(0, columnsSize, columns);
225115cd2caSopenharmony_ci    int rawId = VoicemailInsertValues(valuesBucket);
226115cd2caSopenharmony_ci    EXPECT_GT(rawId, 0);
227115cd2caSopenharmony_ci
228115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
229115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawId));
230115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
231115cd2caSopenharmony_ci    // resultSet count 1
232115cd2caSopenharmony_ci    int rowCount = 0;
233115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
234115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
235115cd2caSopenharmony_ci
236115cd2caSopenharmony_ci    CheckResultSet(valuesBucket, resultSet, "voicemail_Insert_test_300");
237115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
238115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawId));
239115cd2caSopenharmony_ci    // test end delete data
240115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates2);
241115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
242115cd2caSopenharmony_ci    ClearVoicemail();
243115cd2caSopenharmony_ci}
244115cd2caSopenharmony_ci
245115cd2caSopenharmony_ci/*
246115cd2caSopenharmony_ci * @tc.number  voicemail_Update_test_400
247115cd2caSopenharmony_ci * @tc.name    Delete the voicemail status and verify that the deletion was successful
248115cd2caSopenharmony_ci * @tc.desc    Voicemail status deletion capability
249115cd2caSopenharmony_ci * @tc.level   Level1
250115cd2caSopenharmony_ci * @tc.size    MediumTest
251115cd2caSopenharmony_ci * @tc.type    Function
252115cd2caSopenharmony_ci */
253115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Update_test_400, testing::ext::TestSize.Level1)
254115cd2caSopenharmony_ci{
255115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Update_test_400 is starting! ---");
256115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
257115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
258115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(4);
259115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
260115cd2caSopenharmony_ci    values.Put("voice_status", 1);
261115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
262115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
263115cd2caSopenharmony_ci
264115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
265115cd2caSopenharmony_ci    updateValues.Put("voice_status", 0);
266115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
267115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
268115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
269115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
270115cd2caSopenharmony_ci
271115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
272115cd2caSopenharmony_ci    predicates2.EqualTo("voice_status", "0");
273115cd2caSopenharmony_ci    predicates2.And();
274115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailId));
275115cd2caSopenharmony_ci    std::vector<std::string> columns;
276115cd2caSopenharmony_ci    columns.push_back("voice_status");
277115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
278115cd2caSopenharmony_ci    int rowCount = 0;
279115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
280115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
281115cd2caSopenharmony_ci    CheckResultSet(updateValues, result, "voicemail_Update_test_400");
282115cd2caSopenharmony_ci    ClearVoicemail();
283115cd2caSopenharmony_ci}
284115cd2caSopenharmony_ci
285115cd2caSopenharmony_ci/*
286115cd2caSopenharmony_ci * @tc.number  voicemail_Delete_test_500
287115cd2caSopenharmony_ci * @tc.name    Delete a single voice mailbox data and verify whether the deletion is successful
288115cd2caSopenharmony_ci * @tc.desc    Voicemail data deletion capability
289115cd2caSopenharmony_ci * @tc.level   Level1
290115cd2caSopenharmony_ci * @tc.size    MediumTest
291115cd2caSopenharmony_ci * @tc.type    Function
292115cd2caSopenharmony_ci */
293115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_500, testing::ext::TestSize.Level1)
294115cd2caSopenharmony_ci{
295115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Delete_test_500 is starting! ---");
296115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
297115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
298115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(6);
299115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
300115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
301115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Delete_test_500 : voicemailId = %{public}d", voicemailId);
302115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
303115cd2caSopenharmony_ci
304115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
305115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
306115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates);
307115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Delete_test_500: deleteCode = %{public}d", deleteCode);
308115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
309115cd2caSopenharmony_ci
310115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
311115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailId));
312115cd2caSopenharmony_ci    std::vector<std::string> columns;
313115cd2caSopenharmony_ci    columns.push_back("phone_number");
314115cd2caSopenharmony_ci    columns.push_back("id");
315115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
316115cd2caSopenharmony_ci    int rowCount = 0;
317115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
318115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
319115cd2caSopenharmony_ci    result->Close();
320115cd2caSopenharmony_ci    ClearVoicemail();
321115cd2caSopenharmony_ci}
322115cd2caSopenharmony_ci
323115cd2caSopenharmony_ci/*
324115cd2caSopenharmony_ci * @tc.number  voicemail_Delete_test_600
325115cd2caSopenharmony_ci * @tc.name    Insert 3 pieces of voicemail data first, then delete 2 of them, and verify whether the deletion is
326115cd2caSopenharmony_ci * successful
327115cd2caSopenharmony_ci * @tc.desc    Voicemail data deletion capability
328115cd2caSopenharmony_ci * @tc.level   Level1
329115cd2caSopenharmony_ci * @tc.size    MediumTest
330115cd2caSopenharmony_ci * @tc.type    Function
331115cd2caSopenharmony_ci */
332115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_600, testing::ext::TestSize.Level1)
333115cd2caSopenharmony_ci{
334115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Delete_test_600 is staring! ---");
335115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesOne;
336115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
337115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(7);
338115cd2caSopenharmony_ci    valuesOne.Put("phone_number", phoneNumber);
339115cd2caSopenharmony_ci    int voicemailIdOne = VoicemailInsertValues(valuesOne);
340115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Delete_test_600 : voicemailIdOne = %{public}d", voicemailIdOne);
341115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdOne, 0);
342115cd2caSopenharmony_ci
343115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesTwo;
344115cd2caSopenharmony_ci    valuesTwo.Put("phone_number", phoneNumber);
345115cd2caSopenharmony_ci    int voicemailIdTwo = VoicemailInsertValues(valuesTwo);
346115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Delete_test_600 : voicemailIdTwo = %{public}d", voicemailIdTwo);
347115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdTwo, 0);
348115cd2caSopenharmony_ci
349115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesThree;
350115cd2caSopenharmony_ci    valuesThree.Put("phone_number", phoneNumber);
351115cd2caSopenharmony_ci    int voicemailIdThree = VoicemailInsertValues(valuesThree);
352115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Delete_test_600 : voicemailIdThree = %{public}d", voicemailIdThree);
353115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdThree, 0);
354115cd2caSopenharmony_ci
355115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
356115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailIdOne));
357115cd2caSopenharmony_ci    predicates.Or();
358115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailIdThree));
359115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates);
360115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Delete_test_600: deleteCode = %{public}d", deleteCode);
361115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
362115cd2caSopenharmony_ci
363115cd2caSopenharmony_ci    std::vector<std::string> columns;
364115cd2caSopenharmony_ci    columns.push_back("phone_number");
365115cd2caSopenharmony_ci    columns.push_back("id");
366115cd2caSopenharmony_ci    valuesTwo.Put("id", voicemailIdTwo);
367115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
368115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailIdOne));
369115cd2caSopenharmony_ci    predicates2.Or();
370115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailIdTwo));
371115cd2caSopenharmony_ci    predicates2.Or();
372115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailIdThree));
373115cd2caSopenharmony_ci    predicates2.OrderByAsc("id");
374115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
375115cd2caSopenharmony_ci    int rowCount = 0;
376115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
377115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
378115cd2caSopenharmony_ci    CheckResultSet(valuesTwo, result, "voicemail_Delete_test_600");
379115cd2caSopenharmony_ci    ClearVoicemail();
380115cd2caSopenharmony_ci}
381115cd2caSopenharmony_ci
382115cd2caSopenharmony_ci/*
383115cd2caSopenharmony_ci * @tc.number  voicemail_Delete_test_700
384115cd2caSopenharmony_ci * @tc.name    Delete all fields of single voice mailbox data, and verify whether the deletion is successful
385115cd2caSopenharmony_ci * @tc.desc    Call log deletion capability
386115cd2caSopenharmony_ci * @tc.level   Level1
387115cd2caSopenharmony_ci * @tc.size    MediumTest
388115cd2caSopenharmony_ci * @tc.type    Function
389115cd2caSopenharmony_ci */
390115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_700, testing::ext::TestSize.Level1)
391115cd2caSopenharmony_ci{
392115cd2caSopenharmony_ci    HILOG_INFO("-----voicemail_Delete_test_700 is starting!-----");
393115cd2caSopenharmony_ci    // insert
394115cd2caSopenharmony_ci    std::vector<std::string> columns;
395115cd2caSopenharmony_ci    GetVoiceMailValuesColumn(columns);
396115cd2caSopenharmony_ci    int columnsSize = 10;
397115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetVoiceMailValues(0, columnsSize, columns);
398115cd2caSopenharmony_ci    int rawId = VoicemailInsertValues(valuesBucket);
399115cd2caSopenharmony_ci    EXPECT_GT(rawId, 0);
400115cd2caSopenharmony_ci
401115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
402115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawId));
403115cd2caSopenharmony_ci    // test end delete data
404115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates);
405115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
406115cd2caSopenharmony_ci
407115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetDeleteQuery = VoicemailQuery(columns, predicates);
408115cd2caSopenharmony_ci    // resultSet count 0
409115cd2caSopenharmony_ci    int rowCount = 0;
410115cd2caSopenharmony_ci    resultSetDeleteQuery->GetRowCount(rowCount);
411115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
412115cd2caSopenharmony_ci    resultSetDeleteQuery->Close();
413115cd2caSopenharmony_ci    HILOG_INFO("-----voicemail_Delete_test_700 is edn!-----");
414115cd2caSopenharmony_ci    ClearVoicemail();
415115cd2caSopenharmony_ci}
416115cd2caSopenharmony_ci
417115cd2caSopenharmony_ci/*
418115cd2caSopenharmony_ci * @tc.number  voicemail_Delete_test_800
419115cd2caSopenharmony_ci * @tc.name    Delete voice mailbox data in batch and verify whether the deletion is successful
420115cd2caSopenharmony_ci * @tc.desc    delete ability to call records in batches
421115cd2caSopenharmony_ci * @tc.level   Level1
422115cd2caSopenharmony_ci * @tc.size    MediumTest
423115cd2caSopenharmony_ci * @tc.type    Function
424115cd2caSopenharmony_ci */
425115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_800, testing::ext::TestSize.Level1)
426115cd2caSopenharmony_ci{
427115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Delete_test_800 is starting!---");
428115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
429115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
430115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(6);
431115cd2caSopenharmony_ci    voicemailValues.Put("phone_number", phoneNumber);
432115cd2caSopenharmony_ci    int voicemailIdOne = VoicemailInsertValues(voicemailValues);
433115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdOne, 0);
434115cd2caSopenharmony_ci    voicemailValues.Put("phone_number", phoneNumber);
435115cd2caSopenharmony_ci    int voicemailIdTwo = VoicemailInsertValues(voicemailValues);
436115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdTwo, 0);
437115cd2caSopenharmony_ci
438115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
439115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
440115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataSharePredicates> executePredicates =
441115cd2caSopenharmony_ci        std::make_shared<OHOS::DataShare::DataSharePredicates>(predicates);
442115cd2caSopenharmony_ci    std::shared_ptr<Uri> uri = std::make_shared<Uri>(VoicemailUri::VOICEMAIL);
443115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareOperation> operation =
444115cd2caSopenharmony_ci        OHOS::DataShare::DataShareOperation::NewDeleteBuilder(uri)
445115cd2caSopenharmony_ci            ->WithPredicatesBackReference(0, 0)
446115cd2caSopenharmony_ci            ->WithPredicates(executePredicates)
447115cd2caSopenharmony_ci            ->WithInterruptionAllowed(true)
448115cd2caSopenharmony_ci            ->Build();
449115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareOperation>> executeBatchOperations;
450115cd2caSopenharmony_ci    executeBatchOperations.push_back(operation);
451115cd2caSopenharmony_ci    InitAbility();
452115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareResult>> dataShareResult =
453115cd2caSopenharmony_ci        voicemailAbility.ExecuteBatch(executeBatchOperations);
454115cd2caSopenharmony_ci    EXPECT_EQ(0, dataShareResult[0]->GetCount());
455115cd2caSopenharmony_ci    std::vector<std::string> columns;
456115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetInsertQuery = VoicemailQuery(columns, predicates);
457115cd2caSopenharmony_ci    int rowCount = 0;
458115cd2caSopenharmony_ci    resultSetInsertQuery->GetRowCount(rowCount);
459115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
460115cd2caSopenharmony_ci    ClearVoicemail();
461115cd2caSopenharmony_ci}
462115cd2caSopenharmony_ci
463115cd2caSopenharmony_ci/*
464115cd2caSopenharmony_ci * @tc.number  voicemail_Update_test_900
465115cd2caSopenharmony_ci * @tc.name    Update the voice mailbox status and verify whether the update is successful (voice_status changes from 0
466115cd2caSopenharmony_ci * to 1)
467115cd2caSopenharmony_ci * @tc.desc    Voicemail status update capability
468115cd2caSopenharmony_ci * @tc.level   Level1
469115cd2caSopenharmony_ci * @tc.size    MediumTest
470115cd2caSopenharmony_ci * @tc.type    Function
471115cd2caSopenharmony_ci */
472115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Update_test_900, testing::ext::TestSize.Level1)
473115cd2caSopenharmony_ci{
474115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Update_test_900 is starting! ---");
475115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
476115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
477115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(9);
478115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
479115cd2caSopenharmony_ci    values.Put("voice_status", 0);
480115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
481115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Update_test_900 : voicemailId = %{public}d", voicemailId);
482115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
483115cd2caSopenharmony_ci
484115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
485115cd2caSopenharmony_ci    updateValues.Put("voice_status", 1);
486115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
487115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
488115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
489115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
490115cd2caSopenharmony_ci
491115cd2caSopenharmony_ci    updateValues.Put("phone_number", phoneNumber);
492115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
493115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailId));
494115cd2caSopenharmony_ci    std::vector<std::string> columns;
495115cd2caSopenharmony_ci    columns.push_back("phone_number");
496115cd2caSopenharmony_ci    columns.push_back("voice_status");
497115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
498115cd2caSopenharmony_ci    int rowCount = 0;
499115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
500115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
501115cd2caSopenharmony_ci    CheckResultSet(updateValues, result, "voicemail_Update_test_900");
502115cd2caSopenharmony_ci    ClearVoicemail();
503115cd2caSopenharmony_ci}
504115cd2caSopenharmony_ci
505115cd2caSopenharmony_ci/*
506115cd2caSopenharmony_ci * @tc.number  voicemail_Update_test_1000
507115cd2caSopenharmony_ci * @tc.name    FUpdate single voicemail data and verify whether the update is successful
508115cd2caSopenharmony_ci * @tc.desc    Voicemail data update capability
509115cd2caSopenharmony_ci * @tc.level   Level1
510115cd2caSopenharmony_ci * @tc.size    MediumTest
511115cd2caSopenharmony_ci * @tc.type    Function
512115cd2caSopenharmony_ci */
513115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1000, testing::ext::TestSize.Level1)
514115cd2caSopenharmony_ci{
515115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Update_test_1000 is staring! ---");
516115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
517115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
518115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(5);
519115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
520115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
521115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Update_test_1000 : voicemailId = %{public}d", voicemailId);
522115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
523115cd2caSopenharmony_ci
524115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
525115cd2caSopenharmony_ci    std::string phoneNumber_test = randomNumberUtils.Generating(11);
526115cd2caSopenharmony_ci    updateValues.Put("phone_number", std::string(phoneNumber_test));
527115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
528115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
529115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
530115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Update_test_1000: updateCode = %{public}d", updateCode);
531115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
532115cd2caSopenharmony_ci
533115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
534115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailId));
535115cd2caSopenharmony_ci    std::vector<std::string> columns;
536115cd2caSopenharmony_ci    columns.push_back("phone_number");
537115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
538115cd2caSopenharmony_ci    int rowCount = 0;
539115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
540115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
541115cd2caSopenharmony_ci    CheckResultSet(updateValues, result, "voicemail_Update_test_1000");
542115cd2caSopenharmony_ci    ClearVoicemail();
543115cd2caSopenharmony_ci}
544115cd2caSopenharmony_ci
545115cd2caSopenharmony_ci/*
546115cd2caSopenharmony_ci * @tc.number  voicemail_Update_test_1100
547115cd2caSopenharmony_ci * @tc.name    Insert 3 pieces of voicemail data, modify 2 of them, and verify whether the modification is successful
548115cd2caSopenharmony_ci * @tc.desc    Voicemail data update capability
549115cd2caSopenharmony_ci * @tc.level   Level1
550115cd2caSopenharmony_ci * @tc.size    MediumTest
551115cd2caSopenharmony_ci * @tc.type    Function
552115cd2caSopenharmony_ci */
553115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1100, testing::ext::TestSize.Level1)
554115cd2caSopenharmony_ci{
555115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Update_test_1100 is staring! ---");
556115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesOne;
557115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
558115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(9);
559115cd2caSopenharmony_ci    valuesOne.Put("phone_number", phoneNumber);
560115cd2caSopenharmony_ci    int voicemailIdOne = VoicemailInsertValues(valuesOne);
561115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdOne, 0);
562115cd2caSopenharmony_ci
563115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesTwo;
564115cd2caSopenharmony_ci    valuesTwo.Put("phone_number", phoneNumber);
565115cd2caSopenharmony_ci    int voicemailIdTwo = VoicemailInsertValues(valuesTwo);
566115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdTwo, 0);
567115cd2caSopenharmony_ci
568115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesThree;
569115cd2caSopenharmony_ci    valuesThree.Put("phone_number", phoneNumber);
570115cd2caSopenharmony_ci    int voicemailIdThree = VoicemailInsertValues(valuesThree);
571115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdThree, 0);
572115cd2caSopenharmony_ci
573115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
574115cd2caSopenharmony_ci    std::string phoneNumber_test = randomNumberUtils.Generating(8);
575115cd2caSopenharmony_ci    updateValues.Put("phone_number", std::string(phoneNumber_test));
576115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
577115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailIdOne));
578115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
579115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
580115cd2caSopenharmony_ci
581115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValuesTwo;
582115cd2caSopenharmony_ci    std::string phoneNumber_test_name = randomNumberUtils.Generating(7);
583115cd2caSopenharmony_ci    updateValuesTwo.Put("phone_number", std::string(phoneNumber_test_name));
584115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
585115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailIdTwo));
586115cd2caSopenharmony_ci    updateCode = VoicemailUpdate(updateValuesTwo, predicates2);
587115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
588115cd2caSopenharmony_ci
589115cd2caSopenharmony_ci    std::vector<std::string> columns;
590115cd2caSopenharmony_ci    columns.push_back("phone_number");
591115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates3;
592115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(voicemailIdOne));
593115cd2caSopenharmony_ci    predicates3.Or();
594115cd2caSopenharmony_ci    predicates3.EqualTo("id", std::to_string(voicemailIdTwo));
595115cd2caSopenharmony_ci    predicates3.OrderByAsc("id");
596115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates3);
597115cd2caSopenharmony_ci    int rowCount = 0;
598115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
599115cd2caSopenharmony_ci    EXPECT_EQ(2, rowCount);
600115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> valuesVector;
601115cd2caSopenharmony_ci    valuesVector.push_back(updateValues);
602115cd2caSopenharmony_ci    valuesVector.push_back(updateValuesTwo);
603115cd2caSopenharmony_ci    CheckResultSetList(valuesVector, result, "voicemail_Update_test_1100");
604115cd2caSopenharmony_ci    ClearVoicemail();
605115cd2caSopenharmony_ci}
606115cd2caSopenharmony_ci
607115cd2caSopenharmony_ci/*
608115cd2caSopenharmony_ci * @tc.number  voicemail_Update_test_1200
609115cd2caSopenharmony_ci * @tc.name    Update the full field data of voice mailbox and verify whether the update is successful
610115cd2caSopenharmony_ci * @tc.desc    Support all call log update capability
611115cd2caSopenharmony_ci * @tc.level   Level1
612115cd2caSopenharmony_ci * @tc.size    MediumTest
613115cd2caSopenharmony_ci * @tc.type    Function
614115cd2caSopenharmony_ci */
615115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1200, testing::ext::TestSize.Level1)
616115cd2caSopenharmony_ci{
617115cd2caSopenharmony_ci    HILOG_INFO("-----voicemail_Update_test_1200 is starting!-----");
618115cd2caSopenharmony_ci    std::vector<std::string> columns;
619115cd2caSopenharmony_ci    GetVoiceMailValuesColumn(columns);
620115cd2caSopenharmony_ci    int columnsSize = 10;
621115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesBucket = GetVoiceMailValues(0, columnsSize, columns);
622115cd2caSopenharmony_ci    int rawId = VoicemailInsertValues(valuesBucket);
623115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
624115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(rawId));
625115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket upDateValuesBucket = GetVoiceMailValues(0, columnsSize, columns);
626115cd2caSopenharmony_ci    int upDateCode = VoicemailUpdate(upDateValuesBucket, predicates);
627115cd2caSopenharmony_ci    EXPECT_EQ(upDateCode, 0);
628115cd2caSopenharmony_ci
629115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
630115cd2caSopenharmony_ci    // resultSet count 1
631115cd2caSopenharmony_ci    int rowCount = 0;
632115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
633115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
634115cd2caSopenharmony_ci
635115cd2caSopenharmony_ci    CheckResultSet(upDateValuesBucket, resultSet, "voicemail_Update_test_1200");
636115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
637115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(rawId));
638115cd2caSopenharmony_ci    // test end delete data
639115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates2);
640115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, 0);
641115cd2caSopenharmony_ci    HILOG_INFO("-----voicemail_Update_test_1200 is edn!-----");
642115cd2caSopenharmony_ci    ClearVoicemail();
643115cd2caSopenharmony_ci}
644115cd2caSopenharmony_ci
645115cd2caSopenharmony_ci/*
646115cd2caSopenharmony_ci * @tc.number  voicemail_Update_test_1300
647115cd2caSopenharmony_ci * @tc.name    Batch update voice mailbox data and verify whether the update is successful
648115cd2caSopenharmony_ci * @tc.desc    update ability to call records in batches
649115cd2caSopenharmony_ci * @tc.level   Level1
650115cd2caSopenharmony_ci * @tc.size    MediumTest
651115cd2caSopenharmony_ci * @tc.type    Function
652115cd2caSopenharmony_ci */
653115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1300, testing::ext::TestSize.Level1)
654115cd2caSopenharmony_ci{
655115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Update_test_1300 is starting!---");
656115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
657115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
658115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(6);
659115cd2caSopenharmony_ci    voicemailValues.Put("phone_number", phoneNumber);
660115cd2caSopenharmony_ci    int voicemailIdOne = VoicemailInsertValues(voicemailValues);
661115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdOne, 0);
662115cd2caSopenharmony_ci    voicemailValues.Put("phone_number", phoneNumber);
663115cd2caSopenharmony_ci    int voicemailIdTwo = VoicemailInsertValues(voicemailValues);
664115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdTwo, 0);
665115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
666115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailIdOne));
667115cd2caSopenharmony_ci    predicates.Or();
668115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailIdTwo));
669115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareValuesBucket> values =
670115cd2caSopenharmony_ci        std::make_shared<OHOS::DataShare::DataShareValuesBucket>(voicemailValues);
671115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataSharePredicates> executePredicates =
672115cd2caSopenharmony_ci        std::make_shared<OHOS::DataShare::DataSharePredicates>(predicates);
673115cd2caSopenharmony_ci    std::shared_ptr<Uri> uri = std::make_shared<Uri>(VoicemailUri::VOICEMAIL);
674115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareOperation> operation =
675115cd2caSopenharmony_ci        OHOS::DataShare::DataShareOperation::NewUpdateBuilder(uri)
676115cd2caSopenharmony_ci            ->WithValuesBucket(values)
677115cd2caSopenharmony_ci            ->WithPredicatesBackReference(0, 0)
678115cd2caSopenharmony_ci            ->WithPredicates(executePredicates)
679115cd2caSopenharmony_ci            ->WithInterruptionAllowed(true)
680115cd2caSopenharmony_ci            ->Build();
681115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareOperation>> executeBatchOperations;
682115cd2caSopenharmony_ci    executeBatchOperations.push_back(operation);
683115cd2caSopenharmony_ci    InitAbility();
684115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareResult>> dataShareResult =
685115cd2caSopenharmony_ci        voicemailAbility.ExecuteBatch(executeBatchOperations);
686115cd2caSopenharmony_ci    EXPECT_EQ(0, dataShareResult[0]->GetCount());
687115cd2caSopenharmony_ci    std::vector<std::string> columns;
688115cd2caSopenharmony_ci    columns.push_back("phone_number");
689115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetInsertQuery = VoicemailQuery(columns, predicates);
690115cd2caSopenharmony_ci    int rowCount = 0;
691115cd2caSopenharmony_ci    resultSetInsertQuery->GetRowCount(rowCount);
692115cd2caSopenharmony_ci    EXPECT_EQ(2, rowCount);
693115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
694115cd2caSopenharmony_ci    listValue.push_back(voicemailValues);
695115cd2caSopenharmony_ci    listValue.push_back(voicemailValues);
696115cd2caSopenharmony_ci    CheckResultSetList(listValue, resultSetInsertQuery, "voicemail_Update_test_1300");
697115cd2caSopenharmony_ci    ClearVoicemail();
698115cd2caSopenharmony_ci}
699115cd2caSopenharmony_ci
700115cd2caSopenharmony_ci/*
701115cd2caSopenharmony_ci * @tc.number  voicemail_Query_test_1400
702115cd2caSopenharmony_ci * @tc.name    Query the voice mailbox in status 1 and return the query results
703115cd2caSopenharmony_ci * @tc.desc    Voicemail status query capability
704115cd2caSopenharmony_ci * @tc.level   Level1
705115cd2caSopenharmony_ci * @tc.size    MediumTest
706115cd2caSopenharmony_ci * @tc.type    Function
707115cd2caSopenharmony_ci */
708115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1400, testing::ext::TestSize.Level1)
709115cd2caSopenharmony_ci{
710115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Query_test_1400 is starting! ---");
711115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
712115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
713115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(9);
714115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
715115cd2caSopenharmony_ci    values.Put("voice_status", 1);
716115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
717115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Query_test_1400 : voicemailId = %{public}d", voicemailId);
718115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
719115cd2caSopenharmony_ci
720115cd2caSopenharmony_ci    values.Put("id", voicemailId);
721115cd2caSopenharmony_ci    std::vector<std::string> columns;
722115cd2caSopenharmony_ci    columns.push_back("id");
723115cd2caSopenharmony_ci    columns.push_back("phone_number");
724115cd2caSopenharmony_ci    columns.push_back("voice_status");
725115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
726115cd2caSopenharmony_ci    predicates.EqualTo("voice_status", "1");
727115cd2caSopenharmony_ci    predicates.And();
728115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
729115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
730115cd2caSopenharmony_ci    int rowCount = 0;
731115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
732115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
733115cd2caSopenharmony_ci    CheckResultSet(values, result, "voicemail_Query_test_1400");
734115cd2caSopenharmony_ci    ClearVoicemail();
735115cd2caSopenharmony_ci}
736115cd2caSopenharmony_ci
737115cd2caSopenharmony_ci/*
738115cd2caSopenharmony_ci * @tc.number  voicemail_Query_test_1500
739115cd2caSopenharmony_ci * @tc.name    Insert a single voice mailbox and query the inserted voice mailbox data according to the returned ID
740115cd2caSopenharmony_ci * @tc.desc    Voicemail data query capability
741115cd2caSopenharmony_ci * @tc.level   Level1
742115cd2caSopenharmony_ci * @tc.size    MediumTest
743115cd2caSopenharmony_ci * @tc.type    Function
744115cd2caSopenharmony_ci */
745115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1500, testing::ext::TestSize.Level1)
746115cd2caSopenharmony_ci{
747115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Query_test_1500 is staring! ---");
748115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
749115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
750115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(5);
751115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
752115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
753115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Query_test_1500 : voicemailId = %{public}d", voicemailId);
754115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
755115cd2caSopenharmony_ci    std::vector<std::string> columns;
756115cd2caSopenharmony_ci    columns.push_back("id");
757115cd2caSopenharmony_ci    columns.push_back("phone_number");
758115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
759115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
760115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
761115cd2caSopenharmony_ci    int rowCount = 0;
762115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
763115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
764115cd2caSopenharmony_ci    CheckResultSet(values, result, "voicemail_Query_test_1500");
765115cd2caSopenharmony_ci    ClearVoicemail();
766115cd2caSopenharmony_ci}
767115cd2caSopenharmony_ci
768115cd2caSopenharmony_ci/*
769115cd2caSopenharmony_ci * @tc.number  voicemail_Query_test_1600
770115cd2caSopenharmony_ci * @tc.name    Insert multiple voice mailboxes, and query the inserted voice mailbox data according to the returned ID
771115cd2caSopenharmony_ci * @tc.desc    Voicemail data query capability
772115cd2caSopenharmony_ci * @tc.level   Level1
773115cd2caSopenharmony_ci * @tc.size    MediumTest
774115cd2caSopenharmony_ci * @tc.type    Function
775115cd2caSopenharmony_ci */
776115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1600, testing::ext::TestSize.Level1)
777115cd2caSopenharmony_ci{
778115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Query_test_1600 is staring! ---");
779115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
780115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
781115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(5);
782115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
783115cd2caSopenharmony_ci    int voicemailIdOne = VoicemailInsertValues(values);
784115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Query_test_1600 : voicemailIdOne = %{public}d", voicemailIdOne);
785115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdOne, 0);
786115cd2caSopenharmony_ci
787115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket valuesTwo;
788115cd2caSopenharmony_ci    std::string phoneNumber_test = randomNumberUtils.Generating(6);
789115cd2caSopenharmony_ci    valuesTwo.Put("phone_number", phoneNumber_test);
790115cd2caSopenharmony_ci    int voicemailIdTwo = VoicemailInsertValues(valuesTwo);
791115cd2caSopenharmony_ci    HILOG_INFO("voicemail_Query_test_1600 : voicemailIdTwo = %{public}d", voicemailIdTwo);
792115cd2caSopenharmony_ci    EXPECT_GT(voicemailIdTwo, 0);
793115cd2caSopenharmony_ci
794115cd2caSopenharmony_ci    std::vector<std::string> columns;
795115cd2caSopenharmony_ci    columns.push_back("id");
796115cd2caSopenharmony_ci    columns.push_back("phone_number");
797115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
798115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailIdOne));
799115cd2caSopenharmony_ci    predicates.Or();
800115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailIdTwo));
801115cd2caSopenharmony_ci    predicates.OrderByAsc("id");
802115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
803115cd2caSopenharmony_ci    int rowCount = 0;
804115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
805115cd2caSopenharmony_ci    EXPECT_EQ(2, rowCount);
806115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> valuesVector;
807115cd2caSopenharmony_ci    valuesVector.push_back(values);
808115cd2caSopenharmony_ci    valuesVector.push_back(valuesTwo);
809115cd2caSopenharmony_ci    CheckResultSetList(valuesVector, result, "voicemail_Query_test_1600");
810115cd2caSopenharmony_ci    ClearVoicemail();
811115cd2caSopenharmony_ci}
812115cd2caSopenharmony_ci
813115cd2caSopenharmony_ci/*
814115cd2caSopenharmony_ci * @tc.number  voicemail_Query_test_1700
815115cd2caSopenharmony_ci * @tc.name    Query all voice mail data and return query results
816115cd2caSopenharmony_ci * @tc.desc    Voicemail data query capability
817115cd2caSopenharmony_ci * @tc.level   Level1
818115cd2caSopenharmony_ci * @tc.size    MediumTest
819115cd2caSopenharmony_ci * @tc.type    Function
820115cd2caSopenharmony_ci */
821115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1700, testing::ext::TestSize.Level1)
822115cd2caSopenharmony_ci{
823115cd2caSopenharmony_ci    // query database count  There are two test cases above ,the number is 4
824115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Query_test_1700 is staring! ---");
825115cd2caSopenharmony_ci    std::vector<std::string> columns;
826115cd2caSopenharmony_ci    columns.push_back("id");
827115cd2caSopenharmony_ci    columns.push_back("phone_number");
828115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
829115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
830115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
831115cd2caSopenharmony_ci    int rowCount = 0;
832115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
833115cd2caSopenharmony_ci    result->Close();
834115cd2caSopenharmony_ci    ClearVoicemail();
835115cd2caSopenharmony_ci}
836115cd2caSopenharmony_ci
837115cd2caSopenharmony_ci/*
838115cd2caSopenharmony_ci * @tc.number  voicemail_BatchInsert_test_1800
839115cd2caSopenharmony_ci * @tc.name    Add 3 voice mail messages with status  and verify whether the insertion is successful
840115cd2caSopenharmony_ci * @tc.desc    Added ability to batch voicemail status
841115cd2caSopenharmony_ci * @tc.level   Level1
842115cd2caSopenharmony_ci * @tc.size    MediumTest
843115cd2caSopenharmony_ci * @tc.type    Function
844115cd2caSopenharmony_ci */
845115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_BatchInsert_test_1800, testing::ext::TestSize.Level1)
846115cd2caSopenharmony_ci{
847115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_BatchInsert_test_1800 is starting! ---");
848115cd2caSopenharmony_ci
849115cd2caSopenharmony_ci    OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
850115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesOne;
851115cd2caSopenharmony_ci    int number = 6;
852115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
853115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
854115cd2caSopenharmony_ci    voicemailValuesOne.Put("phone_number", std::string(phoneNumber));
855115cd2caSopenharmony_ci    voicemailValuesOne.Put("voice_status", 1);
856115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesTwo;
857115cd2caSopenharmony_ci    voicemailValuesTwo.Put("phone_number", std::string(phoneNumber));
858115cd2caSopenharmony_ci    voicemailValuesTwo.Put("voice_status", 0);
859115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesThree;
860115cd2caSopenharmony_ci    voicemailValuesThree.Put("phone_number", std::string(phoneNumber));
861115cd2caSopenharmony_ci    voicemailValuesThree.Put("voice_status", 0);
862115cd2caSopenharmony_ci
863115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
864115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesOne);
865115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesTwo);
866115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesThree);
867115cd2caSopenharmony_ci    int batchInsertCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
868115cd2caSopenharmony_ci    EXPECT_EQ(batchInsertCode, 0);
869115cd2caSopenharmony_ci
870115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
871115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", phoneNumber);
872115cd2caSopenharmony_ci    predicates.Or();
873115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", phoneNumber);
874115cd2caSopenharmony_ci    predicates.OrderByAsc("id");
875115cd2caSopenharmony_ci    std::vector<std::string> columns;
876115cd2caSopenharmony_ci    columns.push_back("phone_number");
877115cd2caSopenharmony_ci    columns.push_back("voice_status");
878115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
879115cd2caSopenharmony_ci    int rowCount = 0;
880115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
881115cd2caSopenharmony_ci    EXPECT_EQ(2, rowCount);
882115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
883115cd2caSopenharmony_ci    listValue.push_back(voicemailValuesOne);
884115cd2caSopenharmony_ci    listValue.push_back(voicemailValuesThree);
885115cd2caSopenharmony_ci    CheckResultSetList(listValue, result, "voicemail_BatchInsert_test_1800");
886115cd2caSopenharmony_ci    ClearVoicemail();
887115cd2caSopenharmony_ci}
888115cd2caSopenharmony_ci
889115cd2caSopenharmony_ci/*
890115cd2caSopenharmony_ci * @tc.number  voicemail_BatchInsert_test_1900
891115cd2caSopenharmony_ci * @tc.name    Add 5 voice mail data and verify whether the insertion is successful
892115cd2caSopenharmony_ci * @tc.desc    New capabilities for voice mail data in batches
893115cd2caSopenharmony_ci * @tc.level   Level1
894115cd2caSopenharmony_ci * @tc.size    MediumTest
895115cd2caSopenharmony_ci * @tc.type    Function
896115cd2caSopenharmony_ci */
897115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_BatchInsert_test_1900, testing::ext::TestSize.Level1)
898115cd2caSopenharmony_ci{
899115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_BatchInsert_test_1900 is staring! ---");
900115cd2caSopenharmony_ci    OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
901115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesOne;
902115cd2caSopenharmony_ci    int number = 6;
903115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
904115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
905115cd2caSopenharmony_ci    voicemailValuesOne.Put("phone_number", std::string(phoneNumber));
906115cd2caSopenharmony_ci    voicemailValuesOne.Put("display_name", std::string("xiaoming"));
907115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesTwo;
908115cd2caSopenharmony_ci    voicemailValuesTwo.Put("phone_number", std::string(phoneNumber));
909115cd2caSopenharmony_ci    voicemailValuesTwo.Put("display_name", std::string("xiaozi"));
910115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesThree;
911115cd2caSopenharmony_ci    voicemailValuesThree.Put("phone_number", std::string(phoneNumber));
912115cd2caSopenharmony_ci    voicemailValuesThree.Put("display_name", std::string("xiaozhi"));
913115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesFour;
914115cd2caSopenharmony_ci    voicemailValuesFour.Put("phone_number", std::string(phoneNumber));
915115cd2caSopenharmony_ci    voicemailValuesFour.Put("display_name", std::string("xiaohei"));
916115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesFive;
917115cd2caSopenharmony_ci    voicemailValuesFive.Put("phone_number", std::string(phoneNumber));
918115cd2caSopenharmony_ci    voicemailValuesFive.Put("display_name", std::string("xiaohong"));
919115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
920115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesOne);
921115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesTwo);
922115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesThree);
923115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesFour);
924115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesFive);
925115cd2caSopenharmony_ci    int batchInsertCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
926115cd2caSopenharmony_ci    EXPECT_EQ(0, batchInsertCode);
927115cd2caSopenharmony_ci
928115cd2caSopenharmony_ci    int size = listAddBluk.size();
929115cd2caSopenharmony_ci    std::vector<std::string> columns;
930115cd2caSopenharmony_ci    columns.push_back("phone_number");
931115cd2caSopenharmony_ci    columns.push_back("display_name");
932115cd2caSopenharmony_ci    for (int i = 0; i < size; i++) {
933115cd2caSopenharmony_ci        OHOS::DataShare::DataSharePredicates predicates;
934115cd2caSopenharmony_ci        bool isValid = false;
935115cd2caSopenharmony_ci        std::string name = listAddBluk[i].Get("display_name", isValid);
936115cd2caSopenharmony_ci        predicates.EqualTo("display_name", name);
937115cd2caSopenharmony_ci        predicates.And();
938115cd2caSopenharmony_ci        std::string phoneNumber = listAddBluk[i].Get("phone_number", isValid);
939115cd2caSopenharmony_ci        predicates.EqualTo("phone_number", phoneNumber);
940115cd2caSopenharmony_ci        CheckResultSetBatch(predicates, columns, listAddBluk[i], "voicemail_BatchInsert_test_1900");
941115cd2caSopenharmony_ci    }
942115cd2caSopenharmony_ci    ClearVoicemail();
943115cd2caSopenharmony_ci}
944115cd2caSopenharmony_ci
945115cd2caSopenharmony_ci/*
946115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Insert_test_2000
947115cd2caSopenharmony_ci * @tc.name    When voice mail status is added, a non-existent field is passed in
948115cd2caSopenharmony_ci * @tc.desc    Exception use case
949115cd2caSopenharmony_ci * @tc.level   Level1
950115cd2caSopenharmony_ci * @tc.size    MediumTest
951115cd2caSopenharmony_ci * @tc.type    Function
952115cd2caSopenharmony_ci */
953115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Insert_test_2000, testing::ext::TestSize.Level1)
954115cd2caSopenharmony_ci{
955115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Insert_test_2000 is starting! ---");
956115cd2caSopenharmony_ci
957115cd2caSopenharmony_ci    OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
958115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
959115cd2caSopenharmony_ci    int number = 6;
960115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
961115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
962115cd2caSopenharmony_ci    voicemailValues.Put("phone_numbers", phoneNumber);
963115cd2caSopenharmony_ci    int64_t voicemailId = voicemailAbility.Insert(uriVoicemail, voicemailValues);
964115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Insert_test_2000: voicemailId = %{public}ld", voicemailId);
965115cd2caSopenharmony_ci    EXPECT_EQ(voicemailId, -1);
966115cd2caSopenharmony_ci
967115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
968115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", phoneNumber);
969115cd2caSopenharmony_ci    std::vector<std::string> columns;
970115cd2caSopenharmony_ci    columns.push_back("phone_number");
971115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
972115cd2caSopenharmony_ci    int rowCount = 0;
973115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
974115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
975115cd2caSopenharmony_ci    result->Close();
976115cd2caSopenharmony_ci    ClearVoicemail();
977115cd2caSopenharmony_ci}
978115cd2caSopenharmony_ci
979115cd2caSopenharmony_ci/*
980115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Insert_test_2100
981115cd2caSopenharmony_ci * @tc.name    When adding voice mail data, a nonexistent table name is passed in
982115cd2caSopenharmony_ci * @tc.desc    Exception use case
983115cd2caSopenharmony_ci * @tc.level   Level1
984115cd2caSopenharmony_ci * @tc.size    MediumTest
985115cd2caSopenharmony_ci * @tc.type    Function
986115cd2caSopenharmony_ci */
987115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Insert_test_2100, testing::ext::TestSize.Level1)
988115cd2caSopenharmony_ci{
989115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Insert_test_2100 is starting! ---");
990115cd2caSopenharmony_ci
991115cd2caSopenharmony_ci    OHOS::Uri errorUriVoicemails(VoicemailUri::ERROR_URI);
992115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
993115cd2caSopenharmony_ci    int number = 6;
994115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
995115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
996115cd2caSopenharmony_ci    voicemailValues.Put("phone_number", phoneNumber);
997115cd2caSopenharmony_ci    int64_t voicemailId = voicemailAbility.Insert(errorUriVoicemails, voicemailValues);
998115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Insert_test_2100: voicemailId = %{public}ld", voicemailId);
999115cd2caSopenharmony_ci    EXPECT_EQ(voicemailId, -1);
1000115cd2caSopenharmony_ci
1001115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1002115cd2caSopenharmony_ci    std::string phoneNumber2 = randomNumberUtils.Generating(number);
1003115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", phoneNumber2);
1004115cd2caSopenharmony_ci    std::vector<std::string> columns;
1005115cd2caSopenharmony_ci    columns.push_back("phone_number");
1006115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
1007115cd2caSopenharmony_ci    int rowCount = 0;
1008115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1009115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1010115cd2caSopenharmony_ci    result->Close();
1011115cd2caSopenharmony_ci    ClearVoicemail();
1012115cd2caSopenharmony_ci}
1013115cd2caSopenharmony_ci
1014115cd2caSopenharmony_ci/*
1015115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Update_test_2200
1016115cd2caSopenharmony_ci * @tc.name    When deleting voicemail status, a non-existent field is passed in
1017115cd2caSopenharmony_ci * @tc.desc    Exception use case
1018115cd2caSopenharmony_ci * @tc.level   Level1
1019115cd2caSopenharmony_ci * @tc.size    MediumTest
1020115cd2caSopenharmony_ci * @tc.type    Function
1021115cd2caSopenharmony_ci */
1022115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2200, testing::ext::TestSize.Level1)
1023115cd2caSopenharmony_ci{
1024115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Update_test_2200 is starting! ---");
1025115cd2caSopenharmony_ci    int64_t voicemailId = VoicemailStatusInsert("123456", 1);
1026115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2200: voicemailId = %{public}ld", voicemailId);
1027115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1028115cd2caSopenharmony_ci
1029115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1030115cd2caSopenharmony_ci    updateValues.Put("voice_status", 0);
1031115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1032115cd2caSopenharmony_ci    predicates.EqualTo("ids", std::to_string(voicemailId));
1033115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
1034115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2200 : updateCode = %{public}d", updateCode);
1035115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, -1);
1036115cd2caSopenharmony_ci
1037115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1038115cd2caSopenharmony_ci    int number = 6;
1039115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1040115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1041115cd2caSopenharmony_ci    predicates2.EqualTo("phone_number", phoneNumber);
1042115cd2caSopenharmony_ci    predicates2.And();
1043115cd2caSopenharmony_ci    predicates2.EqualTo("voice_status", "0");
1044115cd2caSopenharmony_ci    std::vector<std::string> columns;
1045115cd2caSopenharmony_ci    columns.push_back("phone_number");
1046115cd2caSopenharmony_ci    columns.push_back("voice_status");
1047115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
1048115cd2caSopenharmony_ci    int rowCount = 0;
1049115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1050115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1051115cd2caSopenharmony_ci    result->Close();
1052115cd2caSopenharmony_ci    ClearVoicemail();
1053115cd2caSopenharmony_ci}
1054115cd2caSopenharmony_ci
1055115cd2caSopenharmony_ci/*
1056115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Delete_test_2300
1057115cd2caSopenharmony_ci * @tc.name    When deleting voicemail data, a non-existent field is passed in
1058115cd2caSopenharmony_ci * @tc.desc    Exception use case
1059115cd2caSopenharmony_ci * @tc.level   Level1
1060115cd2caSopenharmony_ci * @tc.size    MediumTest
1061115cd2caSopenharmony_ci * @tc.type    Function
1062115cd2caSopenharmony_ci */
1063115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Delete_test_2300, testing::ext::TestSize.Level1)
1064115cd2caSopenharmony_ci{
1065115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Delete_test_2300 is starting! ---");
1066115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1067115cd2caSopenharmony_ci    int number = 8;
1068115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1069115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1070115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
1071115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
1072115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Delete_test_2300 : voicemailId = %{public}d", voicemailId);
1073115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1074115cd2caSopenharmony_ci
1075115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1076115cd2caSopenharmony_ci    predicates.EqualTo("ids", std::to_string(voicemailId));
1077115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates);
1078115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Delete_test_2300: deleteCode = %{public}d", deleteCode);
1079115cd2caSopenharmony_ci    EXPECT_EQ(deleteCode, -1);
1080115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1081115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailId));
1082115cd2caSopenharmony_ci    std::vector<std::string> columns;
1083115cd2caSopenharmony_ci    columns.push_back("phone_number");
1084115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
1085115cd2caSopenharmony_ci    int rowCount = 0;
1086115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1087115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1088115cd2caSopenharmony_ci    CheckResultSet(values, result, "abnormal_voicemail_Delete_test_2300");
1089115cd2caSopenharmony_ci    ClearVoicemail();
1090115cd2caSopenharmony_ci}
1091115cd2caSopenharmony_ci
1092115cd2caSopenharmony_ci/*
1093115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Delete_test_2400
1094115cd2caSopenharmony_ci * @tc.name    When deleting voicemail data, a nonexistent table name is passed in
1095115cd2caSopenharmony_ci * @tc.desc    Exception use case
1096115cd2caSopenharmony_ci * @tc.level   Level1
1097115cd2caSopenharmony_ci * @tc.size    MediumTest
1098115cd2caSopenharmony_ci * @tc.type    Function
1099115cd2caSopenharmony_ci */
1100115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Delete_test_2400, testing::ext::TestSize.Level1)
1101115cd2caSopenharmony_ci{
1102115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Delete_test_2400 is starting! ---");
1103115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1104115cd2caSopenharmony_ci    int number = 6;
1105115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1106115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1107115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
1108115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
1109115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Delete_test_2400 : voicemailId = %{public}d", voicemailId);
1110115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1111115cd2caSopenharmony_ci
1112115cd2caSopenharmony_ci    OHOS::Uri uriVoicemails(VoicemailUri::ERROR_URI);
1113115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1114115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
1115115cd2caSopenharmony_ci    int deleteCode = voicemailAbility.Delete(uriVoicemails, predicates);
1116115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Delete_test_2400: deleteCode = %{public}d", deleteCode);
1117115cd2caSopenharmony_ci    EXPECT_NE(deleteCode, 0);
1118115cd2caSopenharmony_ci
1119115cd2caSopenharmony_ci    std::vector<std::string> columns;
1120115cd2caSopenharmony_ci    columns.push_back("phone_number");
1121115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
1122115cd2caSopenharmony_ci    int rowCount = 0;
1123115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1124115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1125115cd2caSopenharmony_ci    CheckResultSet(values, result, "abnormal_voicemail_Delete_test_2400");
1126115cd2caSopenharmony_ci    ClearVoicemail();
1127115cd2caSopenharmony_ci}
1128115cd2caSopenharmony_ci
1129115cd2caSopenharmony_ci/*
1130115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Update_test_2500
1131115cd2caSopenharmony_ci * @tc.name    When updating voicemail status, a non-existent field was passed in
1132115cd2caSopenharmony_ci * @tc.desc    Exception use case
1133115cd2caSopenharmony_ci * @tc.level   Level1
1134115cd2caSopenharmony_ci * @tc.size    MediumTest
1135115cd2caSopenharmony_ci * @tc.type    Function
1136115cd2caSopenharmony_ci */
1137115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2500, testing::ext::TestSize.Level1)
1138115cd2caSopenharmony_ci{
1139115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Update_test_2500 is starting! ---");
1140115cd2caSopenharmony_ci    int64_t voicemailId = VoicemailStatusInsert("123456", 1);
1141115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2500: voicemailId = %{public}ld", voicemailId);
1142115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1143115cd2caSopenharmony_ci
1144115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1145115cd2caSopenharmony_ci    updateValues.Put("voice_status", 0);
1146115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1147115cd2caSopenharmony_ci    predicates.EqualTo("ids", std::to_string(voicemailId));
1148115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
1149115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2500 : updateCode = %{public}d", updateCode);
1150115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, -1);
1151115cd2caSopenharmony_ci
1152115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1153115cd2caSopenharmony_ci    int number = 6;
1154115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1155115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1156115cd2caSopenharmony_ci    predicates2.EqualTo("phone_number", phoneNumber);
1157115cd2caSopenharmony_ci    predicates2.And();
1158115cd2caSopenharmony_ci    predicates2.EqualTo("voice_status", "0");
1159115cd2caSopenharmony_ci    std::vector<std::string> columns;
1160115cd2caSopenharmony_ci    columns.push_back("phone_number");
1161115cd2caSopenharmony_ci    columns.push_back("voice_status");
1162115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
1163115cd2caSopenharmony_ci    int rowCount = 0;
1164115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1165115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1166115cd2caSopenharmony_ci    result->Close();
1167115cd2caSopenharmony_ci    ClearVoicemail();
1168115cd2caSopenharmony_ci}
1169115cd2caSopenharmony_ci
1170115cd2caSopenharmony_ci/*
1171115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Update_test_2600
1172115cd2caSopenharmony_ci * @tc.name    When updating voicemail data, a non-existent field was passed in
1173115cd2caSopenharmony_ci * @tc.desc    Exception use case
1174115cd2caSopenharmony_ci * @tc.level   Level1
1175115cd2caSopenharmony_ci * @tc.size    MediumTest
1176115cd2caSopenharmony_ci * @tc.type    Function
1177115cd2caSopenharmony_ci */
1178115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2600, testing::ext::TestSize.Level1)
1179115cd2caSopenharmony_ci{
1180115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Update_test_2600 is staring! ---");
1181115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1182115cd2caSopenharmony_ci    int number = 11;
1183115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1184115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1185115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
1186115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
1187115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2600 : voicemailId = %{public}d", voicemailId);
1188115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1189115cd2caSopenharmony_ci
1190115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1191115cd2caSopenharmony_ci    updateValues.Put("phone_number", std::string(phoneNumber));
1192115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1193115cd2caSopenharmony_ci    predicates.EqualTo("ids", std::to_string(voicemailId));
1194115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
1195115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2600: updateCode = %{public}d", updateCode);
1196115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, -1);
1197115cd2caSopenharmony_ci    ClearVoicemail();
1198115cd2caSopenharmony_ci}
1199115cd2caSopenharmony_ci
1200115cd2caSopenharmony_ci/*
1201115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Update_test_2700
1202115cd2caSopenharmony_ci * @tc.name    When updating voicemail data, a nonexistent table name is passed in
1203115cd2caSopenharmony_ci * @tc.desc    Exception use case
1204115cd2caSopenharmony_ci * @tc.level   Level1
1205115cd2caSopenharmony_ci * @tc.size    MediumTest
1206115cd2caSopenharmony_ci * @tc.type    Function
1207115cd2caSopenharmony_ci */
1208115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2700, testing::ext::TestSize.Level1)
1209115cd2caSopenharmony_ci{
1210115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Update_test_2700 is staring! ---");
1211115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1212115cd2caSopenharmony_ci    int number_test = 6;
1213115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1214115cd2caSopenharmony_ci    std::string phoneNumber_test = randomNumberUtils.Generating(number_test);
1215115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber_test);
1216115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
1217115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2700 : voicemailId = %{public}d", voicemailId);
1218115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1219115cd2caSopenharmony_ci
1220115cd2caSopenharmony_ci    OHOS::Uri uriVoicemails(VoicemailUri::ERROR_URI);
1221115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1222115cd2caSopenharmony_ci    int number = 11;
1223115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1224115cd2caSopenharmony_ci    updateValues.Put("phone_number", std::string(phoneNumber));
1225115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1226115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
1227115cd2caSopenharmony_ci    int updateCode = voicemailAbility.Update(uriVoicemails, predicates, updateValues);
1228115cd2caSopenharmony_ci    HILOG_INFO("abnormal_voicemail_Update_test_2700: updateCode = %{public}d", updateCode);
1229115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, -1);
1230115cd2caSopenharmony_ci    std::vector<std::string> columns;
1231115cd2caSopenharmony_ci    columns.push_back("phone_number");
1232115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
1233115cd2caSopenharmony_ci    int rowCount = 0;
1234115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1235115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1236115cd2caSopenharmony_ci    CheckResultSet(values, result, "abnormal_voicemail_Update_test_2700");
1237115cd2caSopenharmony_ci    ClearVoicemail();
1238115cd2caSopenharmony_ci}
1239115cd2caSopenharmony_ci
1240115cd2caSopenharmony_ci/*
1241115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Query_test_2800
1242115cd2caSopenharmony_ci * @tc.name    When querying voicemail status, a non-existent field is passed in
1243115cd2caSopenharmony_ci * @tc.desc    Exception use case
1244115cd2caSopenharmony_ci * @tc.level   Level1
1245115cd2caSopenharmony_ci * @tc.size    MediumTest
1246115cd2caSopenharmony_ci * @tc.type    Function
1247115cd2caSopenharmony_ci */
1248115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_2800, testing::ext::TestSize.Level1)
1249115cd2caSopenharmony_ci{
1250115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_Query_test_2800 is starting! ---");
1251115cd2caSopenharmony_ci    std::vector<std::string> columns;
1252115cd2caSopenharmony_ci    columns.push_back("id");
1253115cd2caSopenharmony_ci    columns.push_back("phone_numbers");
1254115cd2caSopenharmony_ci    columns.push_back("voice_status");
1255115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1256115cd2caSopenharmony_ci    predicates.EqualTo("voice_status", "1");
1257115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
1258115cd2caSopenharmony_ci    int rowCount = 0;
1259115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1260115cd2caSopenharmony_ci    EXPECT_EQ(-1, rowCount);
1261115cd2caSopenharmony_ci    resultSet->Close();
1262115cd2caSopenharmony_ci    ClearVoicemail();
1263115cd2caSopenharmony_ci}
1264115cd2caSopenharmony_ci
1265115cd2caSopenharmony_ci/*
1266115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Query_test_2900
1267115cd2caSopenharmony_ci * @tc.name    An incorrect field was passed in when querying voicemail data
1268115cd2caSopenharmony_ci * @tc.desc    Exception use case
1269115cd2caSopenharmony_ci * @tc.level   Level1
1270115cd2caSopenharmony_ci * @tc.size    MediumTest
1271115cd2caSopenharmony_ci * @tc.type    Function
1272115cd2caSopenharmony_ci */
1273115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_2900, testing::ext::TestSize.Level1)
1274115cd2caSopenharmony_ci{
1275115cd2caSopenharmony_ci    HILOG_INFO("-----abnormal_voicemail_Query_test_2900 is starting!-----");
1276115cd2caSopenharmony_ci    std::vector<std::string> columns;
1277115cd2caSopenharmony_ci    columns.push_back("id");
1278115cd2caSopenharmony_ci    columns.push_back("phone_numbers");
1279115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1280115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
1281115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
1282115cd2caSopenharmony_ci    int rowCount = -1;
1283115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1284115cd2caSopenharmony_ci    EXPECT_EQ(-1, rowCount);
1285115cd2caSopenharmony_ci    resultSet->Close();
1286115cd2caSopenharmony_ci    ClearVoicemail();
1287115cd2caSopenharmony_ci}
1288115cd2caSopenharmony_ci
1289115cd2caSopenharmony_ci/*
1290115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Query_test_3000
1291115cd2caSopenharmony_ci * @tc.name    When querying voicemail data, a non-existent field value is passed in
1292115cd2caSopenharmony_ci * @tc.desc    Exception use case
1293115cd2caSopenharmony_ci * @tc.level   Level1
1294115cd2caSopenharmony_ci * @tc.size    MediumTest
1295115cd2caSopenharmony_ci * @tc.type    Function
1296115cd2caSopenharmony_ci */
1297115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_3000, testing::ext::TestSize.Level1)
1298115cd2caSopenharmony_ci{
1299115cd2caSopenharmony_ci    HILOG_INFO("-----abnormal_voicemail_Query_test_3000 is starting!-----");
1300115cd2caSopenharmony_ci    std::vector<std::string> columns;
1301115cd2caSopenharmony_ci    columns.push_back("id");
1302115cd2caSopenharmony_ci    columns.push_back("phone_number");
1303115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1304115cd2caSopenharmony_ci    predicates.EqualTo("id", "10000000");
1305115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
1306115cd2caSopenharmony_ci    int rowCount = 0;
1307115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1308115cd2caSopenharmony_ci    result->Close();
1309115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1310115cd2caSopenharmony_ci    ClearVoicemail();
1311115cd2caSopenharmony_ci}
1312115cd2caSopenharmony_ci
1313115cd2caSopenharmony_ci/*
1314115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_Query_test_3100
1315115cd2caSopenharmony_ci * @tc.name    When querying voicemail data, a nonexistent table name was passed in
1316115cd2caSopenharmony_ci * @tc.desc    Exception use case
1317115cd2caSopenharmony_ci * @tc.level   Level1
1318115cd2caSopenharmony_ci * @tc.size    MediumTest
1319115cd2caSopenharmony_ci * @tc.type    Function
1320115cd2caSopenharmony_ci */
1321115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_3100, testing::ext::TestSize.Level1)
1322115cd2caSopenharmony_ci{
1323115cd2caSopenharmony_ci    HILOG_INFO("-----abnormal_voicemail_Query_test_3100 is starting!-----");
1324115cd2caSopenharmony_ci    OHOS::Uri errorUri(VoicemailUri::ERROR_URI);
1325115cd2caSopenharmony_ci    std::vector<std::string> columns;
1326115cd2caSopenharmony_ci    columns.push_back("id");
1327115cd2caSopenharmony_ci    columns.push_back("phone_number");
1328115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1329115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
1330115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
1331115cd2caSopenharmony_ci        voicemailAbility.Query(errorUri, predicates, columns);
1332115cd2caSopenharmony_ci    EXPECT_EQ(resultSet, nullptr);
1333115cd2caSopenharmony_ci    ClearVoicemail();
1334115cd2caSopenharmony_ci}
1335115cd2caSopenharmony_ci
1336115cd2caSopenharmony_ci/*
1337115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_BatchInsert_test_3200
1338115cd2caSopenharmony_ci * @tc.name    When adding voice mail status in batch, an error field is passed in
1339115cd2caSopenharmony_ci * @tc.desc    Exception use case
1340115cd2caSopenharmony_ci * @tc.level   Level1
1341115cd2caSopenharmony_ci * @tc.size    MediumTest
1342115cd2caSopenharmony_ci * @tc.type    Function
1343115cd2caSopenharmony_ci */
1344115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_BatchInsert_test_3200, testing::ext::TestSize.Level1)
1345115cd2caSopenharmony_ci{
1346115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_BatchInsert_test_3200 is starting! ---");
1347115cd2caSopenharmony_ci    OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
1348115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesOne;
1349115cd2caSopenharmony_ci    int number = 15;
1350115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1351115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1352115cd2caSopenharmony_ci    int number_test = 6;
1353115cd2caSopenharmony_ci    std::string phoneNumber_test = randomNumberUtils.Generating(number_test);
1354115cd2caSopenharmony_ci    voicemailValuesOne.Put("phone_number", std::string(phoneNumber));
1355115cd2caSopenharmony_ci    voicemailValuesOne.Put("voice_status", 1);
1356115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesTwo;
1357115cd2caSopenharmony_ci    voicemailValuesTwo.Put("phone_numbers", std::string(phoneNumber_test));
1358115cd2caSopenharmony_ci    voicemailValuesTwo.Put("voice_statuss", 0);
1359115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValuesThree;
1360115cd2caSopenharmony_ci    voicemailValuesThree.Put("phone_number", std::string(phoneNumber_test));
1361115cd2caSopenharmony_ci    voicemailValuesThree.Put("voice_status", 0);
1362115cd2caSopenharmony_ci
1363115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
1364115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesOne);
1365115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesTwo);
1366115cd2caSopenharmony_ci    listAddBluk.push_back(voicemailValuesThree);
1367115cd2caSopenharmony_ci    int batchInsertCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
1368115cd2caSopenharmony_ci    EXPECT_EQ(batchInsertCode, -1);
1369115cd2caSopenharmony_ci
1370115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1371115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", phoneNumber);
1372115cd2caSopenharmony_ci    predicates.Or();
1373115cd2caSopenharmony_ci    predicates.EqualTo("phone_numbers", phoneNumber_test);
1374115cd2caSopenharmony_ci    predicates.Or();
1375115cd2caSopenharmony_ci    predicates.EqualTo("phone_number", phoneNumber_test);
1376115cd2caSopenharmony_ci    std::vector<std::string> columns;
1377115cd2caSopenharmony_ci    columns.push_back("id");
1378115cd2caSopenharmony_ci    columns.push_back("phone_number");
1379115cd2caSopenharmony_ci    columns.push_back("phone_numbers");
1380115cd2caSopenharmony_ci    columns.push_back("voice_status");
1381115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
1382115cd2caSopenharmony_ci    int rowCount = 0;
1383115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1384115cd2caSopenharmony_ci    EXPECT_EQ(-1, rowCount);
1385115cd2caSopenharmony_ci    resultSet->Close();
1386115cd2caSopenharmony_ci    ClearVoicemail();
1387115cd2caSopenharmony_ci}
1388115cd2caSopenharmony_ci
1389115cd2caSopenharmony_ci/*
1390115cd2caSopenharmony_ci * @tc.number  abnormal_voicemail_BatchInsert_test_3300
1391115cd2caSopenharmony_ci * @tc.name    When adding voice mail data in batch, several of them fail. Check the processing logic
1392115cd2caSopenharmony_ci * @tc.desc    Exception use case
1393115cd2caSopenharmony_ci * @tc.level   Level1
1394115cd2caSopenharmony_ci * @tc.size    MediumTest
1395115cd2caSopenharmony_ci * @tc.type    Function
1396115cd2caSopenharmony_ci */
1397115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, abnormal_voicemail_BatchInsert_test_3300, testing::ext::TestSize.Level1)
1398115cd2caSopenharmony_ci{
1399115cd2caSopenharmony_ci    HILOG_INFO("--- abnormal_voicemail_BatchInsert_test_3300 is starting! ---");
1400115cd2caSopenharmony_ci    OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
1401115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
1402115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
1403115cd2caSopenharmony_ci    int batchInserCode = 0;
1404115cd2caSopenharmony_ci    for (int i = 0; i < 10; i++) {
1405115cd2caSopenharmony_ci        listAddBluk.clear();
1406115cd2caSopenharmony_ci        for (int j = 10 * i + 1; j <= 10 * (i + 1); j++) {
1407115cd2caSopenharmony_ci            voicemailValues.Clear();
1408115cd2caSopenharmony_ci            voicemailValues.Put("phone_number", std::to_string(j));
1409115cd2caSopenharmony_ci            std::string name("zhangsan");
1410115cd2caSopenharmony_ci            name.append(std::to_string(j));
1411115cd2caSopenharmony_ci            if (j == 14 || j == 27 || j == 57) {
1412115cd2caSopenharmony_ci                voicemailValues.Put("display_names", name);
1413115cd2caSopenharmony_ci            } else {
1414115cd2caSopenharmony_ci                voicemailValues.Put("display_name", name);
1415115cd2caSopenharmony_ci            }
1416115cd2caSopenharmony_ci            listAddBluk.push_back(voicemailValues);
1417115cd2caSopenharmony_ci        }
1418115cd2caSopenharmony_ci        batchInserCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
1419115cd2caSopenharmony_ci        HILOG_INFO("abnormal_voicemail_BatchInsert_test_3300 : batchInserCode = %{public}d", batchInserCode);
1420115cd2caSopenharmony_ci        if (batchInserCode == 0) {
1421115cd2caSopenharmony_ci            HILOG_INFO("abnormal_voicemail_BatchInsert_test_3300 batch insert success!");
1422115cd2caSopenharmony_ci        } else {
1423115cd2caSopenharmony_ci            HILOG_INFO("abnormal_voicemail_BatchInsert_test_3300 batch insert fail!");
1424115cd2caSopenharmony_ci            EXPECT_EQ(batchInserCode, -1);
1425115cd2caSopenharmony_ci        }
1426115cd2caSopenharmony_ci    }
1427115cd2caSopenharmony_ci    // clear data
1428115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1429115cd2caSopenharmony_ci    predicates.GreaterThan("id", "0");
1430115cd2caSopenharmony_ci    int deleteCode = VoicemailDelete(predicates);
1431115cd2caSopenharmony_ci    EXPECT_EQ(0, deleteCode);
1432115cd2caSopenharmony_ci    ClearVoicemail();
1433115cd2caSopenharmony_ci}
1434115cd2caSopenharmony_ci
1435115cd2caSopenharmony_ci/*
1436115cd2caSopenharmony_ci * @tc.number  voicemail_Insert_test_3400
1437115cd2caSopenharmony_ci * @tc.name    Add a voice mailbox with status 0 and verify that the insertion was successful
1438115cd2caSopenharmony_ci * @tc.desc    Added ability to voice mailbox status
1439115cd2caSopenharmony_ci * @tc.level   Level1
1440115cd2caSopenharmony_ci * @tc.size    MediumTest
1441115cd2caSopenharmony_ci * @tc.type    Function
1442115cd2caSopenharmony_ci */
1443115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_3400, testing::ext::TestSize.Level1)
1444115cd2caSopenharmony_ci{
1445115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Insert_test_3400 is starting! ---");
1446115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1447115cd2caSopenharmony_ci    int number = 6;
1448115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1449115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1450115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
1451115cd2caSopenharmony_ci    values.Put("voice_status", 0);
1452115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
1453115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1454115cd2caSopenharmony_ci
1455115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1456115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
1457115cd2caSopenharmony_ci    std::vector<std::string> columns;
1458115cd2caSopenharmony_ci    columns.push_back("phone_number");
1459115cd2caSopenharmony_ci    columns.push_back("voice_status");
1460115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
1461115cd2caSopenharmony_ci    int rowCount = 0;
1462115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1463115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1464115cd2caSopenharmony_ci    CheckResultSet(values, result, "voicemail_Insert_test_3400");
1465115cd2caSopenharmony_ci    ClearVoicemail();
1466115cd2caSopenharmony_ci}
1467115cd2caSopenharmony_ci
1468115cd2caSopenharmony_ci/*
1469115cd2caSopenharmony_ci * @tc.number  voicemail_Update_test_3500
1470115cd2caSopenharmony_ci * @tc.name    Update the voice mailbox status and verify whether the update is successful (voice_status changes from 1
1471115cd2caSopenharmony_ci * to 0)
1472115cd2caSopenharmony_ci * @tc.desc    Voicemail status update capability
1473115cd2caSopenharmony_ci * @tc.level   Level1
1474115cd2caSopenharmony_ci * @tc.size    MediumTest
1475115cd2caSopenharmony_ci * @tc.type    Function
1476115cd2caSopenharmony_ci */
1477115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Update_test_3500, testing::ext::TestSize.Level1)
1478115cd2caSopenharmony_ci{
1479115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Update_test_3500 is starting! ---");
1480115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1481115cd2caSopenharmony_ci    int number = 9;
1482115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1483115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1484115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
1485115cd2caSopenharmony_ci    values.Put("voice_status", 1);
1486115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
1487115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1488115cd2caSopenharmony_ci
1489115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket updateValues;
1490115cd2caSopenharmony_ci    updateValues.Put("voice_status", 0);
1491115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1492115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
1493115cd2caSopenharmony_ci    int updateCode = VoicemailUpdate(updateValues, predicates);
1494115cd2caSopenharmony_ci    EXPECT_EQ(updateCode, 0);
1495115cd2caSopenharmony_ci    std::string phoneNumber2 = randomNumberUtils.Generating(number);
1496115cd2caSopenharmony_ci    updateValues.Put("phone_number", phoneNumber2);
1497115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates2;
1498115cd2caSopenharmony_ci    predicates2.EqualTo("id", std::to_string(voicemailId));
1499115cd2caSopenharmony_ci    std::vector<std::string> columns;
1500115cd2caSopenharmony_ci    columns.push_back("phone_number");
1501115cd2caSopenharmony_ci    columns.push_back("voice_status");
1502115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
1503115cd2caSopenharmony_ci    int rowCount = 0;
1504115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1505115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1506115cd2caSopenharmony_ci    CheckResultSet(updateValues, result, "voicemail_Update_test_3500");
1507115cd2caSopenharmony_ci    ClearVoicemail();
1508115cd2caSopenharmony_ci}
1509115cd2caSopenharmony_ci
1510115cd2caSopenharmony_ci/*
1511115cd2caSopenharmony_ci * @tc.number  voicemail_Query_test_3600
1512115cd2caSopenharmony_ci * @tc.name    Query the voice mailbox with status 0 and return the query results
1513115cd2caSopenharmony_ci * @tc.desc    Voicemail status query capability
1514115cd2caSopenharmony_ci * @tc.level   Level1
1515115cd2caSopenharmony_ci * @tc.size    MediumTest
1516115cd2caSopenharmony_ci * @tc.type    Function
1517115cd2caSopenharmony_ci */
1518115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_Query_test_3600, testing::ext::TestSize.Level1)
1519115cd2caSopenharmony_ci{
1520115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_Query_test_3600 is starting! ---");
1521115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket values;
1522115cd2caSopenharmony_ci    int number = 9;
1523115cd2caSopenharmony_ci    RandomNumberUtils randomNumberUtils;
1524115cd2caSopenharmony_ci    std::string phoneNumber = randomNumberUtils.Generating(number);
1525115cd2caSopenharmony_ci    values.Put("phone_number", phoneNumber);
1526115cd2caSopenharmony_ci    values.Put("voice_status", 0);
1527115cd2caSopenharmony_ci    int voicemailId = VoicemailInsertValues(values);
1528115cd2caSopenharmony_ci    EXPECT_GT(voicemailId, 0);
1529115cd2caSopenharmony_ci
1530115cd2caSopenharmony_ci    values.Put("id", voicemailId);
1531115cd2caSopenharmony_ci    std::vector<std::string> columns;
1532115cd2caSopenharmony_ci    columns.push_back("id");
1533115cd2caSopenharmony_ci    columns.push_back("phone_number");
1534115cd2caSopenharmony_ci    columns.push_back("voice_status");
1535115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1536115cd2caSopenharmony_ci    predicates.EqualTo("voice_status", "0");
1537115cd2caSopenharmony_ci    predicates.And();
1538115cd2caSopenharmony_ci    predicates.EqualTo("id", std::to_string(voicemailId));
1539115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
1540115cd2caSopenharmony_ci    int rowCount = 0;
1541115cd2caSopenharmony_ci    result->GetRowCount(rowCount);
1542115cd2caSopenharmony_ci    EXPECT_EQ(1, rowCount);
1543115cd2caSopenharmony_ci    CheckResultSet(values, result, "voicemail_Query_test_3600");
1544115cd2caSopenharmony_ci    ClearVoicemail();
1545115cd2caSopenharmony_ci}
1546115cd2caSopenharmony_ci
1547115cd2caSopenharmony_ci/*
1548115cd2caSopenharmony_ci * @tc.number  voicemail_async_insert_test_3800
1549115cd2caSopenharmony_ci * @tc.name    Add voicemail async
1550115cd2caSopenharmony_ci * @tc.desc    Ability to join or add voicemail
1551115cd2caSopenharmony_ci * @tc.level   Level1
1552115cd2caSopenharmony_ci * @tc.size    MediumTest
1553115cd2caSopenharmony_ci * @tc.type    Function
1554115cd2caSopenharmony_ci */
1555115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_async_insert_test_3700, testing::ext::TestSize.Level1)
1556115cd2caSopenharmony_ci{
1557115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_async_insert_test_3700 is staring! ---");
1558115cd2caSopenharmony_ci    std::map<int, OHOS::DataShare::DataShareValuesBucket> result;
1559115cd2caSopenharmony_ci    std::vector<VoicemailAsync *> voicemailAsyncVector;
1560115cd2caSopenharmony_ci    int threadNum = 6;
1561115cd2caSopenharmony_ci    for (int i = 0; i < threadNum; ++i) {
1562115cd2caSopenharmony_ci        OHOS::DataShare::DataShareValuesBucket values;
1563115cd2caSopenharmony_ci        std::string name;
1564115cd2caSopenharmony_ci        name.append("asyncTest");
1565115cd2caSopenharmony_ci        name.append(std::to_string(i));
1566115cd2caSopenharmony_ci        values.Put("display_name", name);
1567115cd2caSopenharmony_ci        VoicemailAsync *contactAsync = new VoicemailAsync(values, result);
1568115cd2caSopenharmony_ci        std::thread asyncThread(&VoicemailAsync::Insert, contactAsync);
1569115cd2caSopenharmony_ci        voicemailAsyncVector.push_back(contactAsync);
1570115cd2caSopenharmony_ci        asyncThread.detach();
1571115cd2caSopenharmony_ci    }
1572115cd2caSopenharmony_ci    std::chrono::milliseconds dura(Time::ASYNC_SLEEP_TIME);
1573115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
1574115cd2caSopenharmony_ci    std::vector<std::string> columns;
1575115cd2caSopenharmony_ci    columns.push_back("display_name");
1576115cd2caSopenharmony_ci    std::map<int, OHOS::DataShare::DataShareValuesBucket>::iterator it;
1577115cd2caSopenharmony_ci    for (it = result.begin(); it != result.end(); it++) {
1578115cd2caSopenharmony_ci        OHOS::DataShare::DataSharePredicates predicates;
1579115cd2caSopenharmony_ci        predicates.EqualTo("id", std::to_string(it->first));
1580115cd2caSopenharmony_ci        std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
1581115cd2caSopenharmony_ci        CheckResultSet(it->second, resultSet, "voicemail_async_insert_test_3700");
1582115cd2caSopenharmony_ci    }
1583115cd2caSopenharmony_ci    for (int i = 0; i < threadNum; ++i) {
1584115cd2caSopenharmony_ci        delete voicemailAsyncVector[i];
1585115cd2caSopenharmony_ci    }
1586115cd2caSopenharmony_ci    ClearVoicemail();
1587115cd2caSopenharmony_ci}
1588115cd2caSopenharmony_ci
1589115cd2caSopenharmony_ci/*
1590115cd2caSopenharmony_ci * @tc.number  voicemail_async_update_test_3900
1591115cd2caSopenharmony_ci * @tc.name    update voicemail async
1592115cd2caSopenharmony_ci * @tc.desc    Ability to join or update voicemail
1593115cd2caSopenharmony_ci * @tc.level   Level1
1594115cd2caSopenharmony_ci * @tc.size    MediumTest
1595115cd2caSopenharmony_ci * @tc.type    Function
1596115cd2caSopenharmony_ci */
1597115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_async_update_test_3800, testing::ext::TestSize.Level1)
1598115cd2caSopenharmony_ci{
1599115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_async_update_test_3800 is staring! ---");
1600115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
1601115cd2caSopenharmony_ci    std::vector<int64_t> voicemailId;
1602115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update1", voicemailValues));
1603115cd2caSopenharmony_ci    voicemailValues.Clear();
1604115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update2", voicemailValues));
1605115cd2caSopenharmony_ci    voicemailValues.Clear();
1606115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update3", voicemailValues));
1607115cd2caSopenharmony_ci    voicemailValues.Clear();
1608115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update4", voicemailValues));
1609115cd2caSopenharmony_ci    voicemailValues.Clear();
1610115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update5", voicemailValues));
1611115cd2caSopenharmony_ci    voicemailValues.Clear();
1612115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update6", voicemailValues));
1613115cd2caSopenharmony_ci    voicemailValues.Clear();
1614115cd2caSopenharmony_ci    std::vector<OHOS::DataShare::DataShareValuesBucket> upDateValues;
1615115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates queryPredicates;
1616115cd2caSopenharmony_ci    std::vector<VoicemailAsync *> voicemailAsyncVector;
1617115cd2caSopenharmony_ci    int size = voicemailId.size();
1618115cd2caSopenharmony_ci    for (int i = 0; i < size; ++i) {
1619115cd2caSopenharmony_ci        OHOS::DataShare::DataShareValuesBucket values;
1620115cd2caSopenharmony_ci        std::string name;
1621115cd2caSopenharmony_ci        name.append("asyncTest");
1622115cd2caSopenharmony_ci        values.Put("display_name", name);
1623115cd2caSopenharmony_ci        upDateValues.push_back(values);
1624115cd2caSopenharmony_ci        int id = voicemailId[i];
1625115cd2caSopenharmony_ci        VoicemailAsync *contactAsync = new VoicemailAsync(values, id);
1626115cd2caSopenharmony_ci        voicemailAsyncVector.push_back(contactAsync);
1627115cd2caSopenharmony_ci        std::thread asyncThread(&VoicemailAsync::Update, contactAsync);
1628115cd2caSopenharmony_ci        asyncThread.detach();
1629115cd2caSopenharmony_ci        queryPredicates.EqualTo("id", std::to_string(voicemailId[i]));
1630115cd2caSopenharmony_ci        if (i < size - 1) {
1631115cd2caSopenharmony_ci            queryPredicates.Or();
1632115cd2caSopenharmony_ci        }
1633115cd2caSopenharmony_ci    }
1634115cd2caSopenharmony_ci    std::chrono::milliseconds dura(Time::ASYNC_SLEEP_TIME);
1635115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
1636115cd2caSopenharmony_ci    std::vector<std::string> columns;
1637115cd2caSopenharmony_ci    columns.push_back("display_name");
1638115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, queryPredicates);
1639115cd2caSopenharmony_ci    CheckResultSetList(upDateValues, resultSet, "voicemail_async_update_test_3800");
1640115cd2caSopenharmony_ci    for (int i = 0; i < size; ++i) {
1641115cd2caSopenharmony_ci        delete voicemailAsyncVector[i];
1642115cd2caSopenharmony_ci    }
1643115cd2caSopenharmony_ci    ClearVoicemail();
1644115cd2caSopenharmony_ci}
1645115cd2caSopenharmony_ci
1646115cd2caSopenharmony_ci/*
1647115cd2caSopenharmony_ci * @tc.number  voicemail_async_query_test_3900
1648115cd2caSopenharmony_ci * @tc.name    query voicemail async
1649115cd2caSopenharmony_ci * @tc.desc    Ability to join or query
1650115cd2caSopenharmony_ci * @tc.level   Level1
1651115cd2caSopenharmony_ci * @tc.size    MediumTest
1652115cd2caSopenharmony_ci * @tc.type    Function
1653115cd2caSopenharmony_ci */
1654115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_async_query_test_3900, testing::ext::TestSize.Level1)
1655115cd2caSopenharmony_ci{
1656115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_async_query_test_4000 is staring! ---");
1657115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
1658115cd2caSopenharmony_ci    std::vector<int64_t> voicemailId;
1659115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_query1", voicemailValues));
1660115cd2caSopenharmony_ci    voicemailValues.Clear();
1661115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_query2", voicemailValues));
1662115cd2caSopenharmony_ci    voicemailValues.Clear();
1663115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_query3", voicemailValues));
1664115cd2caSopenharmony_ci    voicemailValues.Clear();
1665115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_query4", voicemailValues));
1666115cd2caSopenharmony_ci    voicemailValues.Clear();
1667115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_query5", voicemailValues));
1668115cd2caSopenharmony_ci    voicemailValues.Clear();
1669115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_query6", voicemailValues));
1670115cd2caSopenharmony_ci    voicemailValues.Clear();
1671115cd2caSopenharmony_ci    std::vector<VoicemailAsync *> voicemailAsyncVector;
1672115cd2caSopenharmony_ci    std::vector<std::shared_ptr<OHOS::DataShare::DataShareResultSet>> resultSetVector;
1673115cd2caSopenharmony_ci    int threadNum = 6;
1674115cd2caSopenharmony_ci    for (int i = 0; i < threadNum; ++i) {
1675115cd2caSopenharmony_ci        VoicemailAsync *contactAsync = new VoicemailAsync(resultSetVector, voicemailId);
1676115cd2caSopenharmony_ci        voicemailAsyncVector.push_back(contactAsync);
1677115cd2caSopenharmony_ci        std::thread asyncThread(&VoicemailAsync::Query, contactAsync);
1678115cd2caSopenharmony_ci        asyncThread.detach();
1679115cd2caSopenharmony_ci    }
1680115cd2caSopenharmony_ci    int queryCount = 6;
1681115cd2caSopenharmony_ci    int size = resultSetVector.size();
1682115cd2caSopenharmony_ci    for (int i = 0; i < size; ++i) {
1683115cd2caSopenharmony_ci        int rowCount = 0;
1684115cd2caSopenharmony_ci        resultSetVector[i]->GetRowCount(rowCount);
1685115cd2caSopenharmony_ci        EXPECT_EQ(queryCount, rowCount);
1686115cd2caSopenharmony_ci        resultSetVector[i]->Close();
1687115cd2caSopenharmony_ci    }
1688115cd2caSopenharmony_ci    for (int i = 0; i < size; ++i) {
1689115cd2caSopenharmony_ci        delete voicemailAsyncVector[i];
1690115cd2caSopenharmony_ci    }
1691115cd2caSopenharmony_ci    ClearVoicemail();
1692115cd2caSopenharmony_ci}
1693115cd2caSopenharmony_ci
1694115cd2caSopenharmony_ci/*
1695115cd2caSopenharmony_ci * @tc.number  voicemail_async_delete_test_4100
1696115cd2caSopenharmony_ci * @tc.name    delete voicemail async
1697115cd2caSopenharmony_ci * @tc.desc    Ability to join or delete voicemail
1698115cd2caSopenharmony_ci * @tc.level   Level1
1699115cd2caSopenharmony_ci * @tc.size    MediumTest
1700115cd2caSopenharmony_ci * @tc.type    Function
1701115cd2caSopenharmony_ci */
1702115cd2caSopenharmony_ciHWTEST_F(VoicemailAbilityTest, voicemail_async_delete_test_4000, testing::ext::TestSize.Level1)
1703115cd2caSopenharmony_ci{
1704115cd2caSopenharmony_ci    HILOG_INFO("--- voicemail_async_delete_test_4000 is staring! ---");
1705115cd2caSopenharmony_ci    OHOS::DataShare::DataShareValuesBucket voicemailValues;
1706115cd2caSopenharmony_ci    std::vector<int64_t> voicemailId;
1707115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update1", voicemailValues));
1708115cd2caSopenharmony_ci    voicemailValues.Clear();
1709115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update2", voicemailValues));
1710115cd2caSopenharmony_ci    voicemailValues.Clear();
1711115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update3", voicemailValues));
1712115cd2caSopenharmony_ci    voicemailValues.Clear();
1713115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update4", voicemailValues));
1714115cd2caSopenharmony_ci    voicemailValues.Clear();
1715115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update5", voicemailValues));
1716115cd2caSopenharmony_ci    voicemailValues.Clear();
1717115cd2caSopenharmony_ci    voicemailId.push_back(VoicemailInsertValue("async_update6", voicemailValues));
1718115cd2caSopenharmony_ci    voicemailValues.Clear();
1719115cd2caSopenharmony_ci    int size = voicemailId.size();
1720115cd2caSopenharmony_ci    OHOS::DataShare::DataSharePredicates predicates;
1721115cd2caSopenharmony_ci    predicates.BeginWrap();
1722115cd2caSopenharmony_ci    std::vector<VoicemailAsync *> voicemailAsyncVector;
1723115cd2caSopenharmony_ci    for (int i = 0; i < size; ++i) {
1724115cd2caSopenharmony_ci        int id = voicemailId[i];
1725115cd2caSopenharmony_ci        VoicemailAsync *contactAsync = new VoicemailAsync(id);
1726115cd2caSopenharmony_ci        voicemailAsyncVector.push_back(contactAsync);
1727115cd2caSopenharmony_ci        std::thread asyncThread(&VoicemailAsync::Delete, contactAsync);
1728115cd2caSopenharmony_ci        asyncThread.detach();
1729115cd2caSopenharmony_ci        predicates.EqualTo("id", std::to_string(id));
1730115cd2caSopenharmony_ci        if (i < size - 1) {
1731115cd2caSopenharmony_ci            predicates.Or();
1732115cd2caSopenharmony_ci        }
1733115cd2caSopenharmony_ci    }
1734115cd2caSopenharmony_ci    predicates.EndWrap();
1735115cd2caSopenharmony_ci    std::chrono::milliseconds dura(Time::ASYNC_SLEEP_TIME);
1736115cd2caSopenharmony_ci    std::this_thread::sleep_for(dura);
1737115cd2caSopenharmony_ci    std::vector<std::string> columns;
1738115cd2caSopenharmony_ci    std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
1739115cd2caSopenharmony_ci    int rowCount = 0;
1740115cd2caSopenharmony_ci    resultSet->GetRowCount(rowCount);
1741115cd2caSopenharmony_ci    EXPECT_EQ(0, rowCount);
1742115cd2caSopenharmony_ci    resultSet->Close();
1743115cd2caSopenharmony_ci    for (int i = 0; i < size; ++i) {
1744115cd2caSopenharmony_ci        delete voicemailAsyncVector[i];
1745115cd2caSopenharmony_ci    }
1746115cd2caSopenharmony_ci    ClearVoicemail();
1747115cd2caSopenharmony_ci}
1748115cd2caSopenharmony_ci} // namespace Test
1749115cd2caSopenharmony_ci} // namespace Contacts