1 /*
2 * Copyright (c) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <climits>
17 #include <gtest/gtest.h>
18 #include "abs_shared_result_set.h"
19 #include "data_ability_predicates.h"
20 #include "values_bucket.h"
21 #include "data_ability_operation.h"
22 #include "data_ability_operation_builder.h"
23
24 namespace OHOS {
25 namespace AppExecFwk {
26 using namespace testing::ext;
27 using namespace OHOS;
28 using namespace OHOS::AppExecFwk;
29 class DataAbilityOperationModuleTest : public testing::Test {
30 public:
31 static void SetUpTestCase(void);
32 static void TearDownTestCase(void);
33 void SetUp();
34 void TearDown();
35 };
36
SetUpTestCase(void)37 void DataAbilityOperationModuleTest::SetUpTestCase(void)
38 {}
39
TearDownTestCase(void)40 void DataAbilityOperationModuleTest::TearDownTestCase(void)
41 {}
42
SetUp(void)43 void DataAbilityOperationModuleTest::SetUp(void)
44 {}
45
TearDown(void)46 void DataAbilityOperationModuleTest::TearDown(void)
47 {}
48
49 /**
50 * @tc.number: AaFwk_DataAbilityOperation_InsertBuilder_0100
51 * @tc.name: DataAbilityOperation
52 * @tc.desc: Get the file types in the dataability.
53
54 */
55 HWTEST_F(DataAbilityOperationModuleTest, AaFwk_DataAbilityOperation_InsertBuilder_0100, Function | MediumTest | Level1)
56 {
57 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_InsertBuilder_0100";
58 std::shared_ptr<NativeRdb::ValuesBucket> values = std::make_shared<NativeRdb::ValuesBucket>();
59 std::shared_ptr<Uri> uri = std::make_shared<Uri>("dataability://com.example.myapplication5.DataAbilityTest");
60 std::shared_ptr<DataAbilityOperation> operation =
61 DataAbilityOperation::NewInsertBuilder(uri)->WithValuesBucket(values)->Build();
62 EXPECT_NE(operation, nullptr);
63
64 bool isInsertOperation = operation->IsInsertOperation();
65 EXPECT_TRUE(isInsertOperation);
66
67 std::shared_ptr<Uri> operationUri = operation->GetUri();
68 EXPECT_EQ(operationUri->ToString(), "dataability://com.example.myapplication5.DataAbilityTest");
69
70 int type = operation->GetType();
71 EXPECT_EQ(type, DataAbilityOperation::TYPE_INSERT);
72 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_InsertBuilder_0100";
73 }
74
75 /**
76 * @tc.number: AaFwk_DataAbilityOperation_UpdateBuilder_0100
77 * @tc.name: DataAbilityOperation
78 * @tc.desc: Get the file types in the dataability.
79
80 */
81 HWTEST_F(DataAbilityOperationModuleTest, AaFwk_DataAbilityOperation_UpdateBuilder_0100, Function | MediumTest | Level1)
82 {
83 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_UpdateBuilder_0100";
84 std::shared_ptr<NativeRdb::ValuesBucket> values = std::make_shared<NativeRdb::ValuesBucket>();
85 std::shared_ptr<NativeRdb::DataAbilityPredicates> predicates = std::make_shared<NativeRdb::DataAbilityPredicates>();
86 std::shared_ptr<Uri> uri = std::make_shared<Uri>("dataability://com.example.myapplication5.DataAbilityTest");
87 std::shared_ptr<DataAbilityOperation> operation = DataAbilityOperation::NewUpdateBuilder(uri)
88 ->WithValuesBucket(values)
89 ->WithPredicatesBackReference(0, 0)
90 ->WithPredicates(predicates)
91 ->WithInterruptionAllowed(true)
92 ->Build();
93 EXPECT_TRUE(operation == nullptr); // ValuesBucket is empty.
94 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_UpdateBuilder_0100";
95 }
96
97 /**
98 * @tc.number: AaFwk_DataAbilityOperation_AssertBuilder_0100
99 * @tc.name: DataAbilityOperation
100 * @tc.desc: Get the file types in the dataability.
101
102 */
103 HWTEST_F(DataAbilityOperationModuleTest, AaFwk_DataAbilityOperation_AssertBuilder_0100, Function | MediumTest | Level1)
104 {
105 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_AssertBuilder_0100";
106 std::shared_ptr<Uri> uri = std::make_shared<Uri>("dataability://com.example.myapplication5.DataAbilityTest");
107 std::shared_ptr<DataAbilityOperation> operation =
108 DataAbilityOperation::NewAssertBuilder(uri)->WithExpectedCount(2)->Build();
109 EXPECT_NE(operation, nullptr);
110
111 bool isAssertOperation = operation->IsAssertOperation();
112 EXPECT_TRUE(isAssertOperation);
113
114 int count = operation->GetExpectedCount();
115 EXPECT_EQ(count, 2);
116
117 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_AssertBuilder_0100";
118 }
119
120 /**
121 * @tc.number: AaFwk_DataAbilityOperation_DeleteBuilder_0100
122 * @tc.name: DataAbilityOperation
123 * @tc.desc: Get the file types in the dataability.
124
125 */
126 HWTEST_F(DataAbilityOperationModuleTest, AaFwk_DataAbilityOperation_DeleteBuilder_0100, Function | MediumTest | Level1)
127 {
128 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_DeleteBuilder_0100";
129 std::shared_ptr<NativeRdb::DataAbilityPredicates> predicates = std::make_shared<NativeRdb::DataAbilityPredicates>();
130 EXPECT_NE(predicates, nullptr);
131 std::shared_ptr<Uri> uri = std::make_shared<Uri>("dataability://com.example.myapplication5.DataAbilityTest");
132 std::shared_ptr<DataAbilityOperationBuilder> builder = DataAbilityOperation::NewDeleteBuilder(uri);
133 EXPECT_NE(builder, nullptr);
134 std::shared_ptr<DataAbilityOperation> operation = builder->WithPredicates(predicates)->Build();
135 EXPECT_NE(operation, nullptr);
136 bool isDeleteOperation = operation->IsDeleteOperation();
137 EXPECT_TRUE(isDeleteOperation);
138
139 GTEST_LOG_(INFO) << "AaFwk_DataAbilityOperation_DeleteBuilder_0100";
140 }
141 } // namespace AppExecFwk
142 } // namespace OHOS
143