* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "voicemailability_test.h"
#include "data_ability_operation_builder.h"
#include "random_number_utils.h"
using namespace OHOS::Contacts;
namespace Contacts {
namespace Test {
VoicemailAbilityTest::VoicemailAbilityTest()
{
}
VoicemailAbilityTest::~VoicemailAbilityTest()
{
}
int64_t VoicemailAbilityTest::VoicemailStatusInsert(std::string phoneNumber, int status)
{
OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
OHOS::DataShare::DataShareValuesBucket voicemailValues;
voicemailValues.Put("phone_number", phoneNumber);
voicemailValues.Put("voice_status", status);
int64_t code = voicemailAbility.Insert(uriVoicemail, voicemailValues);
return code;
}
int VoicemailAbilityTest::VoicemailUpdate(
OHOS::DataShare::DataShareValuesBucket updateValues, OHOS::DataShare::DataSharePredicates predicates)
{
OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
int code = voicemailAbility.Update(uriVoicemail, predicates, updateValues);
return code;
}
int VoicemailAbilityTest::VoicemailDelete(OHOS::DataShare::DataSharePredicates predicates)
{
OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
int code = voicemailAbility.Delete(uriVoicemail, predicates);
return code;
}
std::shared_ptr<OHOS::DataShare::DataShareResultSet> VoicemailAbilityTest::VoicemailQuery(
std::vector<std::string> columns, OHOS::DataShare::DataSharePredicates predicates)
{
OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
voicemailAbility.Query(uriVoicemail, predicates, columns);
return resultSet;
}
void VoicemailAbilityTest::CheckResultSetBatch(OHOS::DataShare::DataSharePredicates predicates,
std::vector<std::string> &columns, OHOS::DataShare::DataShareValuesBucket values, std::string testName)
{
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSet->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, resultSet, testName);
}
int VoicemailAbilityTest::VoicemailInsertValues(OHOS::DataShare::DataShareValuesBucket &values)
{
OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
int64_t code = voicemailAbility.Insert(uriVoicemail, values);
int result = code;
return result;
}
int64_t VoicemailAbilityTest::VoicemailInsertValue(std::string displayName,
OHOS::DataShare::DataShareValuesBucket &values)
{
OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
values.Put("display_name", displayName);
int64_t code = voicemailAbility.Insert(uriVoicemail, values);
return code;
}
OHOS::DataShare::DataShareValuesBucket VoicemailAbilityTest::GetVoiceMailValues(
int columnsStart, int columnsEnd, std::vector<std::string> &columns)
{
std::string voiceMailTestStringValue = std::to_string(ContactsRand());
OHOS::DataShare::DataShareValuesBucket valuesBucket;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(8);
valuesBucket.Put("phone_number", phoneNumber + voiceMailTestStringValue);
valuesBucket.Put("quicksearch_key", "dfquicksearch_key" + voiceMailTestStringValue);
valuesBucket.Put("display_name", "dfName" + voiceMailTestStringValue);
valuesBucket.Put("voicemail_uri", "dfUri::voicemail_uri" + voiceMailTestStringValue);
valuesBucket.Put("voicemail_type", ContactsRand());
valuesBucket.Put("voice_file_size", ContactsRand());
valuesBucket.Put("voice_duration", ContactsRand());
valuesBucket.Put("voice_status", ContactsRand());
valuesBucket.Put("origin_type", "origin_type" + voiceMailTestStringValue);
valuesBucket.Put("create_time", ContactsRand());
std::vector<std::string> columnsTemp;
GetVoiceMailValuesColumn(columnsTemp);
int allSize = columnsTemp.size();
for (int i = 0; i < allSize; i++) {
if (i >= columnsStart && i < columnsEnd) {
columns.push_back(columnsTemp[i]);
} else {
valuesBucket.Put(columnsTemp[i], "");
}
}
return valuesBucket;
}
void VoicemailAbilityTest::GetVoiceMailValuesColumn(std::vector<std::string> &columns)
{
columns.push_back("phone_number");
columns.push_back("quicksearch_key");
columns.push_back("display_name");
columns.push_back("voicemail_uri");
columns.push_back("voicemail_type");
columns.push_back("voice_file_size");
columns.push_back("voice_duration");
columns.push_back("voice_status");
columns.push_back("origin_type");
columns.push_back("create_time");
}
void VoicemailAbilityTest::ClearVoicemail()
{
OHOS::DataShare::DataSharePredicates predicates;
predicates.GreaterThan("id", "0");
int deleteCode = VoicemailDelete(predicates);
EXPECT_EQ(0, deleteCode);
}
* @tc.number voicemail_Insert_test_100
* @tc.name Add a voice mailbox with status 1 and verify that the insertion was successful
* @tc.desc Added ability to voice mailbox status
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_100, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Insert_test_100 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(6);
values.Put("phone_number", phoneNumber);
values.Put("voice_status", 1);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Insert_test_100 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "voicemail_Insert_test_100");
ClearVoicemail();
}
* @tc.number voicemail_Insert_test_200
* @tc.name Add a single piece of voicemail data and verify whether the insertion is successful
* @tc.desc New capabilities for voicemail data
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_200, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Insert_test_200 is staring! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(6);
values.Put("phone_number", phoneNumber);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Insert_test_200 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("id");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "voicemail_Insert_test_200");
ClearVoicemail();
}
* @tc.number voicemail_Insert_test_300
* @tc.name Add a full field data to voicemail and verify that the insertion was successful
* @tc.desc Added ability to call record
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_300, testing::ext::TestSize.Level1)
{
HILOG_INFO("-----voicemail_Insert_test_300 is starting!-----");
std::vector<std::string> columns;
GetVoiceMailValuesColumn(columns);
int columnsSize = 10;
OHOS::DataShare::DataShareValuesBucket valuesBucket = GetVoiceMailValues(0, columnsSize, columns);
int rawId = VoicemailInsertValues(valuesBucket);
EXPECT_GT(rawId, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(rawId));
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSet->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(valuesBucket, resultSet, "voicemail_Insert_test_300");
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(rawId));
int deleteCode = VoicemailDelete(predicates2);
EXPECT_EQ(deleteCode, 0);
ClearVoicemail();
}
* @tc.number voicemail_Update_test_400
* @tc.name Delete the voicemail status and verify that the deletion was successful
* @tc.desc Voicemail status deletion capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Update_test_400, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Update_test_400 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(4);
values.Put("phone_number", phoneNumber);
values.Put("voice_status", 1);
int voicemailId = VoicemailInsertValues(values);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
updateValues.Put("voice_status", 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
int updateCode = VoicemailUpdate(updateValues, predicates);
EXPECT_EQ(updateCode, 0);
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("voice_status", "0");
predicates2.And();
predicates2.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(updateValues, result, "voicemail_Update_test_400");
ClearVoicemail();
}
* @tc.number voicemail_Delete_test_500
* @tc.name Delete a single voice mailbox data and verify whether the deletion is successful
* @tc.desc Voicemail data deletion capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_500, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Delete_test_500 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(6);
values.Put("phone_number", phoneNumber);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Delete_test_500 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
int deleteCode = VoicemailDelete(predicates);
HILOG_INFO("voicemail_Delete_test_500: deleteCode = %{public}d", deleteCode);
EXPECT_EQ(deleteCode, 0);
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("id");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
result->Close();
ClearVoicemail();
}
* @tc.number voicemail_Delete_test_600
* @tc.name Insert 3 pieces of voicemail data first, then delete 2 of them, and verify whether the deletion is
* successful
* @tc.desc Voicemail data deletion capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_600, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Delete_test_600 is staring! ---");
OHOS::DataShare::DataShareValuesBucket valuesOne;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(7);
valuesOne.Put("phone_number", phoneNumber);
int voicemailIdOne = VoicemailInsertValues(valuesOne);
HILOG_INFO("voicemail_Delete_test_600 : voicemailIdOne = %{public}d", voicemailIdOne);
EXPECT_GT(voicemailIdOne, 0);
OHOS::DataShare::DataShareValuesBucket valuesTwo;
valuesTwo.Put("phone_number", phoneNumber);
int voicemailIdTwo = VoicemailInsertValues(valuesTwo);
HILOG_INFO("voicemail_Delete_test_600 : voicemailIdTwo = %{public}d", voicemailIdTwo);
EXPECT_GT(voicemailIdTwo, 0);
OHOS::DataShare::DataShareValuesBucket valuesThree;
valuesThree.Put("phone_number", phoneNumber);
int voicemailIdThree = VoicemailInsertValues(valuesThree);
HILOG_INFO("voicemail_Delete_test_600 : voicemailIdThree = %{public}d", voicemailIdThree);
EXPECT_GT(voicemailIdThree, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailIdOne));
predicates.Or();
predicates.EqualTo("id", std::to_string(voicemailIdThree));
int deleteCode = VoicemailDelete(predicates);
HILOG_INFO("voicemail_Delete_test_600: deleteCode = %{public}d", deleteCode);
EXPECT_EQ(deleteCode, 0);
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("id");
valuesTwo.Put("id", voicemailIdTwo);
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(voicemailIdOne));
predicates2.Or();
predicates2.EqualTo("id", std::to_string(voicemailIdTwo));
predicates2.Or();
predicates2.EqualTo("id", std::to_string(voicemailIdThree));
predicates2.OrderByAsc("id");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(valuesTwo, result, "voicemail_Delete_test_600");
ClearVoicemail();
}
* @tc.number voicemail_Delete_test_700
* @tc.name Delete all fields of single voice mailbox data, and verify whether the deletion is successful
* @tc.desc Call log deletion capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_700, testing::ext::TestSize.Level1)
{
HILOG_INFO("-----voicemail_Delete_test_700 is starting!-----");
std::vector<std::string> columns;
GetVoiceMailValuesColumn(columns);
int columnsSize = 10;
OHOS::DataShare::DataShareValuesBucket valuesBucket = GetVoiceMailValues(0, columnsSize, columns);
int rawId = VoicemailInsertValues(valuesBucket);
EXPECT_GT(rawId, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(rawId));
int deleteCode = VoicemailDelete(predicates);
EXPECT_EQ(deleteCode, 0);
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetDeleteQuery = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSetDeleteQuery->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
resultSetDeleteQuery->Close();
HILOG_INFO("-----voicemail_Delete_test_700 is edn!-----");
ClearVoicemail();
}
* @tc.number voicemail_Delete_test_800
* @tc.name Delete voice mailbox data in batch and verify whether the deletion is successful
* @tc.desc delete ability to call records in batches
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Delete_test_800, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Delete_test_800 is starting!---");
OHOS::DataShare::DataShareValuesBucket voicemailValues;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(6);
voicemailValues.Put("phone_number", phoneNumber);
int voicemailIdOne = VoicemailInsertValues(voicemailValues);
EXPECT_GT(voicemailIdOne, 0);
voicemailValues.Put("phone_number", phoneNumber);
int voicemailIdTwo = VoicemailInsertValues(voicemailValues);
EXPECT_GT(voicemailIdTwo, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.GreaterThan("id", "0");
std::shared_ptr<OHOS::DataShare::DataSharePredicates> executePredicates =
std::make_shared<OHOS::DataShare::DataSharePredicates>(predicates);
std::shared_ptr<Uri> uri = std::make_shared<Uri>(VoicemailUri::VOICEMAIL);
std::shared_ptr<OHOS::DataShare::DataShareOperation> operation =
OHOS::DataShare::DataShareOperation::NewDeleteBuilder(uri)
->WithPredicatesBackReference(0, 0)
->WithPredicates(executePredicates)
->WithInterruptionAllowed(true)
->Build();
std::vector<std::shared_ptr<OHOS::DataShare::DataShareOperation>> executeBatchOperations;
executeBatchOperations.push_back(operation);
InitAbility();
std::vector<std::shared_ptr<OHOS::DataShare::DataShareResult>> dataShareResult =
voicemailAbility.ExecuteBatch(executeBatchOperations);
EXPECT_EQ(0, dataShareResult[0]->GetCount());
std::vector<std::string> columns;
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetInsertQuery = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSetInsertQuery->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
ClearVoicemail();
}
* @tc.number voicemail_Update_test_900
* @tc.name Update the voice mailbox status and verify whether the update is successful (voice_status changes from 0
* to 1)
* @tc.desc Voicemail status update capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Update_test_900, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Update_test_900 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(9);
values.Put("phone_number", phoneNumber);
values.Put("voice_status", 0);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Update_test_900 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
updateValues.Put("voice_status", 1);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
int updateCode = VoicemailUpdate(updateValues, predicates);
EXPECT_EQ(updateCode, 0);
updateValues.Put("phone_number", phoneNumber);
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(updateValues, result, "voicemail_Update_test_900");
ClearVoicemail();
}
* @tc.number voicemail_Update_test_1000
* @tc.name FUpdate single voicemail data and verify whether the update is successful
* @tc.desc Voicemail data update capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1000, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Update_test_1000 is staring! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(5);
values.Put("phone_number", phoneNumber);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Update_test_1000 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
std::string phoneNumber_test = randomNumberUtils.Generating(11);
updateValues.Put("phone_number", std::string(phoneNumber_test));
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
int updateCode = VoicemailUpdate(updateValues, predicates);
HILOG_INFO("voicemail_Update_test_1000: updateCode = %{public}d", updateCode);
EXPECT_EQ(updateCode, 0);
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(updateValues, result, "voicemail_Update_test_1000");
ClearVoicemail();
}
* @tc.number voicemail_Update_test_1100
* @tc.name Insert 3 pieces of voicemail data, modify 2 of them, and verify whether the modification is successful
* @tc.desc Voicemail data update capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1100, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Update_test_1100 is staring! ---");
OHOS::DataShare::DataShareValuesBucket valuesOne;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(9);
valuesOne.Put("phone_number", phoneNumber);
int voicemailIdOne = VoicemailInsertValues(valuesOne);
EXPECT_GT(voicemailIdOne, 0);
OHOS::DataShare::DataShareValuesBucket valuesTwo;
valuesTwo.Put("phone_number", phoneNumber);
int voicemailIdTwo = VoicemailInsertValues(valuesTwo);
EXPECT_GT(voicemailIdTwo, 0);
OHOS::DataShare::DataShareValuesBucket valuesThree;
valuesThree.Put("phone_number", phoneNumber);
int voicemailIdThree = VoicemailInsertValues(valuesThree);
EXPECT_GT(voicemailIdThree, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
std::string phoneNumber_test = randomNumberUtils.Generating(8);
updateValues.Put("phone_number", std::string(phoneNumber_test));
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailIdOne));
int updateCode = VoicemailUpdate(updateValues, predicates);
EXPECT_EQ(updateCode, 0);
OHOS::DataShare::DataShareValuesBucket updateValuesTwo;
std::string phoneNumber_test_name = randomNumberUtils.Generating(7);
updateValuesTwo.Put("phone_number", std::string(phoneNumber_test_name));
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(voicemailIdTwo));
updateCode = VoicemailUpdate(updateValuesTwo, predicates2);
EXPECT_EQ(updateCode, 0);
std::vector<std::string> columns;
columns.push_back("phone_number");
OHOS::DataShare::DataSharePredicates predicates3;
predicates3.EqualTo("id", std::to_string(voicemailIdOne));
predicates3.Or();
predicates3.EqualTo("id", std::to_string(voicemailIdTwo));
predicates3.OrderByAsc("id");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates3);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(2, rowCount);
std::vector<OHOS::DataShare::DataShareValuesBucket> valuesVector;
valuesVector.push_back(updateValues);
valuesVector.push_back(updateValuesTwo);
CheckResultSetList(valuesVector, result, "voicemail_Update_test_1100");
ClearVoicemail();
}
* @tc.number voicemail_Update_test_1200
* @tc.name Update the full field data of voice mailbox and verify whether the update is successful
* @tc.desc Support all call log update capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1200, testing::ext::TestSize.Level1)
{
HILOG_INFO("-----voicemail_Update_test_1200 is starting!-----");
std::vector<std::string> columns;
GetVoiceMailValuesColumn(columns);
int columnsSize = 10;
OHOS::DataShare::DataShareValuesBucket valuesBucket = GetVoiceMailValues(0, columnsSize, columns);
int rawId = VoicemailInsertValues(valuesBucket);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(rawId));
OHOS::DataShare::DataShareValuesBucket upDateValuesBucket = GetVoiceMailValues(0, columnsSize, columns);
int upDateCode = VoicemailUpdate(upDateValuesBucket, predicates);
EXPECT_EQ(upDateCode, 0);
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSet->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(upDateValuesBucket, resultSet, "voicemail_Update_test_1200");
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(rawId));
int deleteCode = VoicemailDelete(predicates2);
EXPECT_EQ(deleteCode, 0);
HILOG_INFO("-----voicemail_Update_test_1200 is edn!-----");
ClearVoicemail();
}
* @tc.number voicemail_Update_test_1300
* @tc.name Batch update voice mailbox data and verify whether the update is successful
* @tc.desc update ability to call records in batches
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Update_test_1300, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Update_test_1300 is starting!---");
OHOS::DataShare::DataShareValuesBucket voicemailValues;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(6);
voicemailValues.Put("phone_number", phoneNumber);
int voicemailIdOne = VoicemailInsertValues(voicemailValues);
EXPECT_GT(voicemailIdOne, 0);
voicemailValues.Put("phone_number", phoneNumber);
int voicemailIdTwo = VoicemailInsertValues(voicemailValues);
EXPECT_GT(voicemailIdTwo, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailIdOne));
predicates.Or();
predicates.EqualTo("id", std::to_string(voicemailIdTwo));
std::shared_ptr<OHOS::DataShare::DataShareValuesBucket> values =
std::make_shared<OHOS::DataShare::DataShareValuesBucket>(voicemailValues);
std::shared_ptr<OHOS::DataShare::DataSharePredicates> executePredicates =
std::make_shared<OHOS::DataShare::DataSharePredicates>(predicates);
std::shared_ptr<Uri> uri = std::make_shared<Uri>(VoicemailUri::VOICEMAIL);
std::shared_ptr<OHOS::DataShare::DataShareOperation> operation =
OHOS::DataShare::DataShareOperation::NewUpdateBuilder(uri)
->WithValuesBucket(values)
->WithPredicatesBackReference(0, 0)
->WithPredicates(executePredicates)
->WithInterruptionAllowed(true)
->Build();
std::vector<std::shared_ptr<OHOS::DataShare::DataShareOperation>> executeBatchOperations;
executeBatchOperations.push_back(operation);
InitAbility();
std::vector<std::shared_ptr<OHOS::DataShare::DataShareResult>> dataShareResult =
voicemailAbility.ExecuteBatch(executeBatchOperations);
EXPECT_EQ(0, dataShareResult[0]->GetCount());
std::vector<std::string> columns;
columns.push_back("phone_number");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSetInsertQuery = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSetInsertQuery->GetRowCount(rowCount);
EXPECT_EQ(2, rowCount);
std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
listValue.push_back(voicemailValues);
listValue.push_back(voicemailValues);
CheckResultSetList(listValue, resultSetInsertQuery, "voicemail_Update_test_1300");
ClearVoicemail();
}
* @tc.number voicemail_Query_test_1400
* @tc.name Query the voice mailbox in status 1 and return the query results
* @tc.desc Voicemail status query capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1400, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Query_test_1400 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(9);
values.Put("phone_number", phoneNumber);
values.Put("voice_status", 1);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Query_test_1400 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
values.Put("id", voicemailId);
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
columns.push_back("voice_status");
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("voice_status", "1");
predicates.And();
predicates.EqualTo("id", std::to_string(voicemailId));
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "voicemail_Query_test_1400");
ClearVoicemail();
}
* @tc.number voicemail_Query_test_1500
* @tc.name Insert a single voice mailbox and query the inserted voice mailbox data according to the returned ID
* @tc.desc Voicemail data query capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1500, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Query_test_1500 is staring! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(5);
values.Put("phone_number", phoneNumber);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Query_test_1500 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "voicemail_Query_test_1500");
ClearVoicemail();
}
* @tc.number voicemail_Query_test_1600
* @tc.name Insert multiple voice mailboxes, and query the inserted voice mailbox data according to the returned ID
* @tc.desc Voicemail data query capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1600, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Query_test_1600 is staring! ---");
OHOS::DataShare::DataShareValuesBucket values;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(5);
values.Put("phone_number", phoneNumber);
int voicemailIdOne = VoicemailInsertValues(values);
HILOG_INFO("voicemail_Query_test_1600 : voicemailIdOne = %{public}d", voicemailIdOne);
EXPECT_GT(voicemailIdOne, 0);
OHOS::DataShare::DataShareValuesBucket valuesTwo;
std::string phoneNumber_test = randomNumberUtils.Generating(6);
valuesTwo.Put("phone_number", phoneNumber_test);
int voicemailIdTwo = VoicemailInsertValues(valuesTwo);
HILOG_INFO("voicemail_Query_test_1600 : voicemailIdTwo = %{public}d", voicemailIdTwo);
EXPECT_GT(voicemailIdTwo, 0);
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailIdOne));
predicates.Or();
predicates.EqualTo("id", std::to_string(voicemailIdTwo));
predicates.OrderByAsc("id");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(2, rowCount);
std::vector<OHOS::DataShare::DataShareValuesBucket> valuesVector;
valuesVector.push_back(values);
valuesVector.push_back(valuesTwo);
CheckResultSetList(valuesVector, result, "voicemail_Query_test_1600");
ClearVoicemail();
}
* @tc.number voicemail_Query_test_1700
* @tc.name Query all voice mail data and return query results
* @tc.desc Voicemail data query capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Query_test_1700, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Query_test_1700 is staring! ---");
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
OHOS::DataShare::DataSharePredicates predicates;
predicates.GreaterThan("id", "0");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
result->Close();
ClearVoicemail();
}
* @tc.number voicemail_BatchInsert_test_1800
* @tc.name Add 3 voice mail messages with status and verify whether the insertion is successful
* @tc.desc Added ability to batch voicemail status
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_BatchInsert_test_1800, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_BatchInsert_test_1800 is starting! ---");
OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
OHOS::DataShare::DataShareValuesBucket voicemailValuesOne;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
voicemailValuesOne.Put("phone_number", std::string(phoneNumber));
voicemailValuesOne.Put("voice_status", 1);
OHOS::DataShare::DataShareValuesBucket voicemailValuesTwo;
voicemailValuesTwo.Put("phone_number", std::string(phoneNumber));
voicemailValuesTwo.Put("voice_status", 0);
OHOS::DataShare::DataShareValuesBucket voicemailValuesThree;
voicemailValuesThree.Put("phone_number", std::string(phoneNumber));
voicemailValuesThree.Put("voice_status", 0);
std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
listAddBluk.push_back(voicemailValuesOne);
listAddBluk.push_back(voicemailValuesTwo);
listAddBluk.push_back(voicemailValuesThree);
int batchInsertCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
EXPECT_EQ(batchInsertCode, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("phone_number", phoneNumber);
predicates.Or();
predicates.EqualTo("phone_number", phoneNumber);
predicates.OrderByAsc("id");
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(2, rowCount);
std::vector<OHOS::DataShare::DataShareValuesBucket> listValue;
listValue.push_back(voicemailValuesOne);
listValue.push_back(voicemailValuesThree);
CheckResultSetList(listValue, result, "voicemail_BatchInsert_test_1800");
ClearVoicemail();
}
* @tc.number voicemail_BatchInsert_test_1900
* @tc.name Add 5 voice mail data and verify whether the insertion is successful
* @tc.desc New capabilities for voice mail data in batches
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_BatchInsert_test_1900, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_BatchInsert_test_1900 is staring! ---");
OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
OHOS::DataShare::DataShareValuesBucket voicemailValuesOne;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
voicemailValuesOne.Put("phone_number", std::string(phoneNumber));
voicemailValuesOne.Put("display_name", std::string("xiaoming"));
OHOS::DataShare::DataShareValuesBucket voicemailValuesTwo;
voicemailValuesTwo.Put("phone_number", std::string(phoneNumber));
voicemailValuesTwo.Put("display_name", std::string("xiaozi"));
OHOS::DataShare::DataShareValuesBucket voicemailValuesThree;
voicemailValuesThree.Put("phone_number", std::string(phoneNumber));
voicemailValuesThree.Put("display_name", std::string("xiaozhi"));
OHOS::DataShare::DataShareValuesBucket voicemailValuesFour;
voicemailValuesFour.Put("phone_number", std::string(phoneNumber));
voicemailValuesFour.Put("display_name", std::string("xiaohei"));
OHOS::DataShare::DataShareValuesBucket voicemailValuesFive;
voicemailValuesFive.Put("phone_number", std::string(phoneNumber));
voicemailValuesFive.Put("display_name", std::string("xiaohong"));
std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
listAddBluk.push_back(voicemailValuesOne);
listAddBluk.push_back(voicemailValuesTwo);
listAddBluk.push_back(voicemailValuesThree);
listAddBluk.push_back(voicemailValuesFour);
listAddBluk.push_back(voicemailValuesFive);
int batchInsertCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
EXPECT_EQ(0, batchInsertCode);
int size = listAddBluk.size();
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("display_name");
for (int i = 0; i < size; i++) {
OHOS::DataShare::DataSharePredicates predicates;
bool isValid = false;
std::string name = listAddBluk[i].Get("display_name", isValid);
predicates.EqualTo("display_name", name);
predicates.And();
std::string phoneNumber = listAddBluk[i].Get("phone_number", isValid);
predicates.EqualTo("phone_number", phoneNumber);
CheckResultSetBatch(predicates, columns, listAddBluk[i], "voicemail_BatchInsert_test_1900");
}
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Insert_test_2000
* @tc.name When voice mail status is added, a non-existent field is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Insert_test_2000, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Insert_test_2000 is starting! ---");
OHOS::Uri uriVoicemail(VoicemailUri::VOICEMAIL);
OHOS::DataShare::DataShareValuesBucket voicemailValues;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
voicemailValues.Put("phone_numbers", phoneNumber);
int64_t voicemailId = voicemailAbility.Insert(uriVoicemail, voicemailValues);
HILOG_INFO("abnormal_voicemail_Insert_test_2000: voicemailId = %{public}ld", (long) voicemailId);
EXPECT_EQ(voicemailId, -1);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("phone_number", phoneNumber);
std::vector<std::string> columns;
columns.push_back("phone_number");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
result->Close();
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Insert_test_2100
* @tc.name When adding voice mail data, a nonexistent table name is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Insert_test_2100, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Insert_test_2100 is starting! ---");
OHOS::Uri errorUriVoicemails(VoicemailUri::ERROR_URI);
OHOS::DataShare::DataShareValuesBucket voicemailValues;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
voicemailValues.Put("phone_number", phoneNumber);
int64_t voicemailId = voicemailAbility.Insert(errorUriVoicemails, voicemailValues);
HILOG_INFO("abnormal_voicemail_Insert_test_2100: voicemailId = %{public}ld", (long) voicemailId);
EXPECT_EQ(voicemailId, -1);
OHOS::DataShare::DataSharePredicates predicates;
std::string phoneNumber2 = randomNumberUtils.Generating(number);
predicates.EqualTo("phone_number", phoneNumber2);
std::vector<std::string> columns;
columns.push_back("phone_number");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
result->Close();
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Update_test_2200
* @tc.name When deleting voicemail status, a non-existent field is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2200, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Update_test_2200 is starting! ---");
int64_t voicemailId = VoicemailStatusInsert("123456", 1);
HILOG_INFO("abnormal_voicemail_Update_test_2200: voicemailId = %{public}ld", (long) voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
updateValues.Put("voice_status", 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("ids", std::to_string(voicemailId));
int updateCode = VoicemailUpdate(updateValues, predicates);
HILOG_INFO("abnormal_voicemail_Update_test_2200 : updateCode = %{public}d", updateCode);
EXPECT_EQ(updateCode, -1);
OHOS::DataShare::DataSharePredicates predicates2;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
predicates2.EqualTo("phone_number", phoneNumber);
predicates2.And();
predicates2.EqualTo("voice_status", "0");
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
result->Close();
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Delete_test_2300
* @tc.name When deleting voicemail data, a non-existent field is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Delete_test_2300, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Delete_test_2300 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
int number = 8;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
values.Put("phone_number", phoneNumber);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("abnormal_voicemail_Delete_test_2300 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("ids", std::to_string(voicemailId));
int deleteCode = VoicemailDelete(predicates);
HILOG_INFO("abnormal_voicemail_Delete_test_2300: deleteCode = %{public}d", deleteCode);
EXPECT_EQ(deleteCode, -1);
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "abnormal_voicemail_Delete_test_2300");
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Delete_test_2400
* @tc.name When deleting voicemail data, a nonexistent table name is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Delete_test_2400, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Delete_test_2400 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
values.Put("phone_number", phoneNumber);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("abnormal_voicemail_Delete_test_2400 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::Uri uriVoicemails(VoicemailUri::ERROR_URI);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
int deleteCode = voicemailAbility.Delete(uriVoicemails, predicates);
HILOG_INFO("abnormal_voicemail_Delete_test_2400: deleteCode = %{public}d", deleteCode);
EXPECT_NE(deleteCode, 0);
std::vector<std::string> columns;
columns.push_back("phone_number");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "abnormal_voicemail_Delete_test_2400");
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Update_test_2500
* @tc.name When updating voicemail status, a non-existent field was passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2500, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Update_test_2500 is starting! ---");
int64_t voicemailId = VoicemailStatusInsert("123456", 1);
HILOG_INFO("abnormal_voicemail_Update_test_2500: voicemailId = %{public}ld", (long) voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
updateValues.Put("voice_status", 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("ids", std::to_string(voicemailId));
int updateCode = VoicemailUpdate(updateValues, predicates);
HILOG_INFO("abnormal_voicemail_Update_test_2500 : updateCode = %{public}d", updateCode);
EXPECT_EQ(updateCode, -1);
OHOS::DataShare::DataSharePredicates predicates2;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
predicates2.EqualTo("phone_number", phoneNumber);
predicates2.And();
predicates2.EqualTo("voice_status", "0");
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
result->Close();
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Update_test_2600
* @tc.name When updating voicemail data, a non-existent field was passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2600, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Update_test_2600 is staring! ---");
OHOS::DataShare::DataShareValuesBucket values;
int number = 11;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
values.Put("phone_number", phoneNumber);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("abnormal_voicemail_Update_test_2600 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
updateValues.Put("phone_number", std::string(phoneNumber));
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("ids", std::to_string(voicemailId));
int updateCode = VoicemailUpdate(updateValues, predicates);
HILOG_INFO("abnormal_voicemail_Update_test_2600: updateCode = %{public}d", updateCode);
EXPECT_EQ(updateCode, -1);
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Update_test_2700
* @tc.name When updating voicemail data, a nonexistent table name is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Update_test_2700, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Update_test_2700 is staring! ---");
OHOS::DataShare::DataShareValuesBucket values;
int number_test = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber_test = randomNumberUtils.Generating(number_test);
values.Put("phone_number", phoneNumber_test);
int voicemailId = VoicemailInsertValues(values);
HILOG_INFO("abnormal_voicemail_Update_test_2700 : voicemailId = %{public}d", voicemailId);
EXPECT_GT(voicemailId, 0);
OHOS::Uri uriVoicemails(VoicemailUri::ERROR_URI);
OHOS::DataShare::DataShareValuesBucket updateValues;
int number = 11;
std::string phoneNumber = randomNumberUtils.Generating(number);
updateValues.Put("phone_number", std::string(phoneNumber));
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
int updateCode = voicemailAbility.Update(uriVoicemails, predicates, updateValues);
HILOG_INFO("abnormal_voicemail_Update_test_2700: updateCode = %{public}d", updateCode);
EXPECT_EQ(updateCode, -1);
std::vector<std::string> columns;
columns.push_back("phone_number");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "abnormal_voicemail_Update_test_2700");
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Query_test_2800
* @tc.name When querying voicemail status, a non-existent field is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_2800, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_Query_test_2800 is starting! ---");
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_numbers");
columns.push_back("voice_status");
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("voice_status", "1");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSet->GetRowCount(rowCount);
EXPECT_EQ(-1, rowCount);
resultSet->Close();
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Query_test_2900
* @tc.name An incorrect field was passed in when querying voicemail data
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_2900, testing::ext::TestSize.Level1)
{
HILOG_INFO("-----abnormal_voicemail_Query_test_2900 is starting!-----");
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_numbers");
OHOS::DataShare::DataSharePredicates predicates;
predicates.GreaterThan("id", "0");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
int rowCount = -1;
resultSet->GetRowCount(rowCount);
EXPECT_EQ(-1, rowCount);
resultSet->Close();
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Query_test_3000
* @tc.name When querying voicemail data, a non-existent field value is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_3000, testing::ext::TestSize.Level1)
{
HILOG_INFO("-----abnormal_voicemail_Query_test_3000 is starting!-----");
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", "10000000");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
result->Close();
EXPECT_EQ(0, rowCount);
ClearVoicemail();
}
* @tc.number abnormal_voicemail_Query_test_3100
* @tc.name When querying voicemail data, a nonexistent table name was passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_Query_test_3100, testing::ext::TestSize.Level1)
{
HILOG_INFO("-----abnormal_voicemail_Query_test_3100 is starting!-----");
OHOS::Uri errorUri(VoicemailUri::ERROR_URI);
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
OHOS::DataShare::DataSharePredicates predicates;
predicates.GreaterThan("id", "0");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet =
voicemailAbility.Query(errorUri, predicates, columns);
EXPECT_EQ(resultSet, nullptr);
ClearVoicemail();
}
* @tc.number abnormal_voicemail_BatchInsert_test_3200
* @tc.name When adding voice mail status in batch, an error field is passed in
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_BatchInsert_test_3200, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_BatchInsert_test_3200 is starting! ---");
OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
OHOS::DataShare::DataShareValuesBucket voicemailValuesOne;
int number = 15;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
int number_test = 6;
std::string phoneNumber_test = randomNumberUtils.Generating(number_test);
voicemailValuesOne.Put("phone_number", std::string(phoneNumber));
voicemailValuesOne.Put("voice_status", 1);
OHOS::DataShare::DataShareValuesBucket voicemailValuesTwo;
voicemailValuesTwo.Put("phone_numbers", std::string(phoneNumber_test));
voicemailValuesTwo.Put("voice_statuss", 0);
OHOS::DataShare::DataShareValuesBucket voicemailValuesThree;
voicemailValuesThree.Put("phone_number", std::string(phoneNumber_test));
voicemailValuesThree.Put("voice_status", 0);
std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
listAddBluk.push_back(voicemailValuesOne);
listAddBluk.push_back(voicemailValuesTwo);
listAddBluk.push_back(voicemailValuesThree);
int batchInsertCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
EXPECT_EQ(batchInsertCode, -1);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("phone_number", phoneNumber);
predicates.Or();
predicates.EqualTo("phone_numbers", phoneNumber_test);
predicates.Or();
predicates.EqualTo("phone_number", phoneNumber_test);
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
columns.push_back("phone_numbers");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSet->GetRowCount(rowCount);
EXPECT_EQ(-1, rowCount);
resultSet->Close();
ClearVoicemail();
}
* @tc.number abnormal_voicemail_BatchInsert_test_3300
* @tc.name When adding voice mail data in batch, several of them fail. Check the processing logic
* @tc.desc Exception use case
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, abnormal_voicemail_BatchInsert_test_3300, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- abnormal_voicemail_BatchInsert_test_3300 is starting! ---");
OHOS::Uri uriData(VoicemailUri::VOICEMAIL);
OHOS::DataShare::DataShareValuesBucket voicemailValues;
std::vector<OHOS::DataShare::DataShareValuesBucket> listAddBluk;
int batchInserCode = 0;
for (int i = 0; i < 10; i++) {
listAddBluk.clear();
for (int j = 10 * i + 1; j <= 10 * (i + 1); j++) {
voicemailValues.Clear();
voicemailValues.Put("phone_number", std::to_string(j));
std::string name("zhangsan");
name.append(std::to_string(j));
if (j == 14 || j == 27 || j == 57) {
voicemailValues.Put("display_names", name);
} else {
voicemailValues.Put("display_name", name);
}
listAddBluk.push_back(voicemailValues);
}
batchInserCode = voicemailAbility.BatchInsert(uriData, listAddBluk);
HILOG_INFO("abnormal_voicemail_BatchInsert_test_3300 : batchInserCode = %{public}d", batchInserCode);
if (batchInserCode == 0) {
HILOG_INFO("abnormal_voicemail_BatchInsert_test_3300 batch insert success!");
} else {
HILOG_INFO("abnormal_voicemail_BatchInsert_test_3300 batch insert fail!");
EXPECT_EQ(batchInserCode, -1);
}
}
OHOS::DataShare::DataSharePredicates predicates;
predicates.GreaterThan("id", "0");
int deleteCode = VoicemailDelete(predicates);
EXPECT_EQ(0, deleteCode);
ClearVoicemail();
}
* @tc.number voicemail_Insert_test_3400
* @tc.name Add a voice mailbox with status 0 and verify that the insertion was successful
* @tc.desc Added ability to voice mailbox status
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Insert_test_3400, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Insert_test_3400 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
int number = 6;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
values.Put("phone_number", phoneNumber);
values.Put("voice_status", 0);
int voicemailId = VoicemailInsertValues(values);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "voicemail_Insert_test_3400");
ClearVoicemail();
}
* @tc.number voicemail_Update_test_3500
* @tc.name Update the voice mailbox status and verify whether the update is successful (voice_status changes from 1
* to 0)
* @tc.desc Voicemail status update capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Update_test_3500, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Update_test_3500 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
int number = 9;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
values.Put("phone_number", phoneNumber);
values.Put("voice_status", 1);
int voicemailId = VoicemailInsertValues(values);
EXPECT_GT(voicemailId, 0);
OHOS::DataShare::DataShareValuesBucket updateValues;
updateValues.Put("voice_status", 0);
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(voicemailId));
int updateCode = VoicemailUpdate(updateValues, predicates);
EXPECT_EQ(updateCode, 0);
std::string phoneNumber2 = randomNumberUtils.Generating(number);
updateValues.Put("phone_number", phoneNumber2);
OHOS::DataShare::DataSharePredicates predicates2;
predicates2.EqualTo("id", std::to_string(voicemailId));
std::vector<std::string> columns;
columns.push_back("phone_number");
columns.push_back("voice_status");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates2);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(updateValues, result, "voicemail_Update_test_3500");
ClearVoicemail();
}
* @tc.number voicemail_Query_test_3600
* @tc.name Query the voice mailbox with status 0 and return the query results
* @tc.desc Voicemail status query capability
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_Query_test_3600, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_Query_test_3600 is starting! ---");
OHOS::DataShare::DataShareValuesBucket values;
int number = 9;
RandomNumberUtils randomNumberUtils;
std::string phoneNumber = randomNumberUtils.Generating(number);
values.Put("phone_number", phoneNumber);
values.Put("voice_status", 0);
int voicemailId = VoicemailInsertValues(values);
EXPECT_GT(voicemailId, 0);
values.Put("id", voicemailId);
std::vector<std::string> columns;
columns.push_back("id");
columns.push_back("phone_number");
columns.push_back("voice_status");
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("voice_status", "0");
predicates.And();
predicates.EqualTo("id", std::to_string(voicemailId));
std::shared_ptr<OHOS::DataShare::DataShareResultSet> result = VoicemailQuery(columns, predicates);
int rowCount = 0;
result->GetRowCount(rowCount);
EXPECT_EQ(1, rowCount);
CheckResultSet(values, result, "voicemail_Query_test_3600");
ClearVoicemail();
}
* @tc.number voicemail_async_insert_test_3800
* @tc.name Add voicemail async
* @tc.desc Ability to join or add voicemail
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_async_insert_test_3700, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_async_insert_test_3700 is staring! ---");
std::map<int, OHOS::DataShare::DataShareValuesBucket> result;
std::vector<VoicemailAsync *> voicemailAsyncVector;
int threadNum = 6;
for (int i = 0; i < threadNum; ++i) {
OHOS::DataShare::DataShareValuesBucket values;
std::string name;
name.append("asyncTest");
name.append(std::to_string(i));
values.Put("display_name", name);
VoicemailAsync *contactAsync = new VoicemailAsync(values, result);
std::thread asyncThread(&VoicemailAsync::Insert, contactAsync);
voicemailAsyncVector.push_back(contactAsync);
asyncThread.detach();
}
std::chrono::milliseconds dura(Time::ASYNC_SLEEP_TIME);
std::this_thread::sleep_for(dura);
std::vector<std::string> columns;
columns.push_back("display_name");
std::map<int, OHOS::DataShare::DataShareValuesBucket>::iterator it;
for (it = result.begin(); it != result.end(); it++) {
OHOS::DataShare::DataSharePredicates predicates;
predicates.EqualTo("id", std::to_string(it->first));
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
CheckResultSet(it->second, resultSet, "voicemail_async_insert_test_3700");
}
for (int i = 0; i < threadNum; ++i) {
delete voicemailAsyncVector[i];
}
ClearVoicemail();
}
* @tc.number voicemail_async_update_test_3900
* @tc.name update voicemail async
* @tc.desc Ability to join or update voicemail
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_async_update_test_3800, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_async_update_test_3800 is staring! ---");
OHOS::DataShare::DataShareValuesBucket voicemailValues;
std::vector<int64_t> voicemailId;
voicemailId.push_back(VoicemailInsertValue("async_update1", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update2", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update3", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update4", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update5", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update6", voicemailValues));
voicemailValues.Clear();
std::vector<OHOS::DataShare::DataShareValuesBucket> upDateValues;
OHOS::DataShare::DataSharePredicates queryPredicates;
std::vector<VoicemailAsync *> voicemailAsyncVector;
int size = voicemailId.size();
for (int i = 0; i < size; ++i) {
OHOS::DataShare::DataShareValuesBucket values;
std::string name;
name.append("asyncTest");
values.Put("display_name", name);
upDateValues.push_back(values);
int id = voicemailId[i];
VoicemailAsync *contactAsync = new VoicemailAsync(values, id);
voicemailAsyncVector.push_back(contactAsync);
std::thread asyncThread(&VoicemailAsync::Update, contactAsync);
asyncThread.detach();
queryPredicates.EqualTo("id", std::to_string(voicemailId[i]));
if (i < size - 1) {
queryPredicates.Or();
}
}
std::chrono::milliseconds dura(Time::ASYNC_SLEEP_TIME);
std::this_thread::sleep_for(dura);
std::vector<std::string> columns;
columns.push_back("display_name");
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, queryPredicates);
CheckResultSetList(upDateValues, resultSet, "voicemail_async_update_test_3800");
for (int i = 0; i < size; ++i) {
delete voicemailAsyncVector[i];
}
ClearVoicemail();
}
* @tc.number voicemail_async_query_test_3900
* @tc.name query voicemail async
* @tc.desc Ability to join or query
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_async_query_test_3900, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_async_query_test_4000 is staring! ---");
OHOS::DataShare::DataShareValuesBucket voicemailValues;
std::vector<int64_t> voicemailId;
voicemailId.push_back(VoicemailInsertValue("async_query1", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_query2", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_query3", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_query4", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_query5", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_query6", voicemailValues));
voicemailValues.Clear();
std::vector<VoicemailAsync *> voicemailAsyncVector;
std::vector<std::shared_ptr<OHOS::DataShare::DataShareResultSet>> resultSetVector;
int threadNum = 6;
for (int i = 0; i < threadNum; ++i) {
VoicemailAsync *contactAsync = new VoicemailAsync(resultSetVector, voicemailId);
voicemailAsyncVector.push_back(contactAsync);
std::thread asyncThread(&VoicemailAsync::Query, contactAsync);
asyncThread.detach();
}
int queryCount = 6;
int size = resultSetVector.size();
for (int i = 0; i < size; ++i) {
int rowCount = 0;
resultSetVector[i]->GetRowCount(rowCount);
EXPECT_EQ(queryCount, rowCount);
resultSetVector[i]->Close();
}
for (int i = 0; i < size; ++i) {
delete voicemailAsyncVector[i];
}
ClearVoicemail();
}
* @tc.number voicemail_async_delete_test_4100
* @tc.name delete voicemail async
* @tc.desc Ability to join or delete voicemail
* @tc.level Level1
* @tc.size MediumTest
* @tc.type Function
*/
HWTEST_F(VoicemailAbilityTest, voicemail_async_delete_test_4000, testing::ext::TestSize.Level1)
{
HILOG_INFO("--- voicemail_async_delete_test_4000 is staring! ---");
OHOS::DataShare::DataShareValuesBucket voicemailValues;
std::vector<int64_t> voicemailId;
voicemailId.push_back(VoicemailInsertValue("async_update1", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update2", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update3", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update4", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update5", voicemailValues));
voicemailValues.Clear();
voicemailId.push_back(VoicemailInsertValue("async_update6", voicemailValues));
voicemailValues.Clear();
int size = voicemailId.size();
OHOS::DataShare::DataSharePredicates predicates;
predicates.BeginWrap();
std::vector<VoicemailAsync *> voicemailAsyncVector;
for (int i = 0; i < size; ++i) {
int id = voicemailId[i];
VoicemailAsync *contactAsync = new VoicemailAsync(id);
voicemailAsyncVector.push_back(contactAsync);
std::thread asyncThread(&VoicemailAsync::Delete, contactAsync);
asyncThread.detach();
predicates.EqualTo("id", std::to_string(id));
if (i < size - 1) {
predicates.Or();
}
}
predicates.EndWrap();
std::chrono::milliseconds dura(Time::ASYNC_SLEEP_TIME);
std::this_thread::sleep_for(dura);
std::vector<std::string> columns;
std::shared_ptr<OHOS::DataShare::DataShareResultSet> resultSet = VoicemailQuery(columns, predicates);
int rowCount = 0;
resultSet->GetRowCount(rowCount);
EXPECT_EQ(0, rowCount);
resultSet->Close();
for (int i = 0; i < size; ++i) {
delete voicemailAsyncVector[i];
}
ClearVoicemail();
}
}
}