1 /*
2 * Copyright (c) 2023 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 <gtest/gtest.h>
17
18 #include "ability_manager_errors.h"
19 #include "distributed_client.h"
20 #include "distributed_parcel_helper.h"
21 #include "ipc_skeleton.h"
22 #include "iservice_registry.h"
23 #include "string_ex.h"
24 #include "system_ability_definition.h"
25 #include "window_manager_hilog.h"
26 #include "mock/mock_message_parcel.h"
27
28 using namespace testing;
29 using namespace testing::ext;
30
31 using namespace testing;
32 using namespace testing::ext;
33
34 namespace OHOS {
35 namespace Rosen {
36 namespace {
37 const std::string UNDEFINED = "undefined";
38 }
39
40 class DistributedClientTest : public testing::Test {
41 public:
42 static void SetUpTestCase();
43 static void TearDownTestCase();
44 void SetUp() override;
45 void TearDown() override;
46 private:
47 std::shared_ptr<DistributedClient> distributedClient_;
48 };
49
SetUpTestCase()50 void DistributedClientTest::SetUpTestCase()
51 {
52 }
53
TearDownTestCase()54 void DistributedClientTest::TearDownTestCase()
55 {
56 }
57
SetUp()58 void DistributedClientTest::SetUp()
59 {
60 distributedClient_ = std::make_shared<DistributedClient>();
61 EXPECT_NE(nullptr, distributedClient_);
62 }
63
TearDown()64 void DistributedClientTest::TearDown()
65 {
66 distributedClient_ = nullptr;
67 }
68
69 namespace {
70 /**
71 * @tc.name: GetMissionInfos
72 * @tc.desc: GetMissionInfos test
73 * @tc.type: FUNC
74 * @tc.require: #I6JLSI
75 */
76 HWTEST_F(DistributedClientTest, GetMissionInfos, Function | SmallTest | Level2)
77 {
78 GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos start.";
79 const std::u16string DMS_PROXY_INTERFACE_TOKEN = u"ohos.distributedschedule.accessToken";
80 MessageParcel data;
81 MessageParcel reply;
82 MessageOption option;
83 std::vector<AAFwk::MissionInfo> missionInfos;
84 if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) {
85 EXPECT_EQ(distributedClient_->GetMissionInfos("", 0, missionInfos), ERR_FLATTEN_OBJECT);
86 }
87 EXPECT_EQ(distributedClient_->GetMissionInfos("", 0, missionInfos), AAFwk::INVALID_PARAMETERS_ERR);
88 GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos end.";
89 }
90
91 /**
92 * @tc.name: GetMissionInfos02
93 * @tc.desc: GetMissionInfos test
94 * @tc.type: FUNC
95 * @tc.require: #I6JLSI
96 */
97 HWTEST_F(DistributedClientTest, GetMissionInfos02, Function | SmallTest | Level2)
98 {
99 GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos02 start.";
100 std::vector<AAFwk::MissionInfo> missionInfos;
101 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
102 EXPECT_NE(distributedClient_->GetMissionInfos("", 0, missionInfos), ERR_NONE);
103 MockMessageParcel::ClearAllErrorFlag();
104 GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos02 end.";
105 }
106
107 /**
108 * @tc.name: GetMissionInfos03
109 * @tc.desc: GetMissionInfos test
110 * @tc.type: FUNC
111 * @tc.require: #I6JLSI
112 */
113 HWTEST_F(DistributedClientTest, GetMissionInfos03, Function | SmallTest | Level2)
114 {
115 GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos03 start.";
116 std::vector<AAFwk::MissionInfo> missionInfos;
117 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
118 EXPECT_NE(distributedClient_->GetMissionInfos("", 0, missionInfos), ERR_NONE);
119 MockMessageParcel::ClearAllErrorFlag();
120 GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos03 end.";
121 }
122 }
123
124 /**
125 * @tc.name: GetRemoteMissionSnapshotInfo
126 * @tc.desc: GetRemoteMissionSnapshotInfo test
127 * @tc.type: FUNC
128 * @tc.require: #I6JLSI
129 */
130 HWTEST_F(DistributedClientTest, GetRemoteMissionSnapshotInfo, Function | SmallTest | Level2)
131 {
132 GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo start.";
133 AAFwk::MissionSnapshot missionSnapshot;
134 EXPECT_EQ(distributedClient_->GetRemoteMissionSnapshotInfo("", 0, missionSnapshot), ERR_NULL_OBJECT);
135 GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo end.";
136 }
137
138 /**
139 * @tc.name: GetRemoteMissionSnapshotInfo02
140 * @tc.desc: GetRemoteMissionSnapshotInfo test
141 * @tc.type: FUNC
142 * @tc.require: #I6JLSI
143 */
144 HWTEST_F(DistributedClientTest, GetRemoteMissionSnapshotInfo02, Function | SmallTest | Level2)
145 {
146 GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo02 start.";
147 std::string deviceID = "123456789";
148 AAFwk::MissionSnapshot missionSnapshot;
149 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
150 EXPECT_NE(distributedClient_->GetRemoteMissionSnapshotInfo(deviceID, 0, missionSnapshot), ERR_NONE);
151 MockMessageParcel::ClearAllErrorFlag();
152 GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo02 end.";
153 }
154
155 /**
156 * @tc.name: GetRemoteMissionSnapshotInfo03
157 * @tc.desc: GetRemoteMissionSnapshotInfo test
158 * @tc.type: FUNC
159 * @tc.require: #I6JLSI
160 */
161 HWTEST_F(DistributedClientTest, GetRemoteMissionSnapshotInfo03, Function | SmallTest | Level2)
162 {
163 GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo03 start.";
164 std::string deviceID = "123456789";
165 AAFwk::MissionSnapshot missionSnapshot;
166 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
167 EXPECT_NE(distributedClient_->GetRemoteMissionSnapshotInfo(deviceID, 0, missionSnapshot), ERR_NONE);
168 MockMessageParcel::ClearAllErrorFlag();
169 GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo03 end.";
170 }
171
172 /**
173 * @tc.name: ReadMissionInfosFromParcel
174 * @tc.desc: ReadMissionInfosFromParcel test
175 * @tc.type: FUNC
176 * @tc.require: #I6JLSI
177 */
178 HWTEST_F(DistributedClientTest, ReadMissionInfosFromParcel, Function | SmallTest | Level2)
179 {
180 GTEST_LOG_(INFO) << "DistributedClientTest ReadMissionInfosFromParcel start.";
181 std::vector<AAFwk::MissionInfo> missionInfos;
182 MessageParcel reply;
183 EXPECT_EQ(distributedClient_->ReadMissionInfosFromParcel(reply, missionInfos), true);
184 GTEST_LOG_(INFO) << "DistributedClientTest ReadMissionInfosFromParcel end.";
185 }
186
187 /**
188 * @tc.name: SetMissionContinueState01
189 * @tc.desc: SetMissionContinueState01 test
190 * @tc.type: FUNC
191 * @tc.require: #I6JLSI
192 */
193 HWTEST_F(DistributedClientTest, SetMissionContinueState01, Function | SmallTest | Level2)
194 {
195 GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState01 start.";
196 AAFwk::ContinueState state = AAFwk::ContinueState::CONTINUESTATE_ACTIVE;
197 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
198 EXPECT_NE(distributedClient_->SetMissionContinueState(0, state), ERR_NULL_OBJECT);
199 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
200 EXPECT_NE(distributedClient_->SetMissionContinueState(0, state), ERR_NULL_OBJECT);
201 MockMessageParcel::ClearAllErrorFlag();
202 GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState01 end.";
203 }
204
205 /**
206 * @tc.name: SetMissionContinueState02
207 * @tc.desc: SetMissionContinueState02 test
208 * @tc.type: FUNC
209 * @tc.require: #I6JLSI
210 */
211 HWTEST_F(DistributedClientTest, SetMissionContinueState02, Function | SmallTest | Level2)
212 {
213 GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState02 start.";
214 AAFwk::ContinueState state = AAFwk::ContinueState::CONTINUESTATE_INACTIVE;
215 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
216 EXPECT_NE(distributedClient_->SetMissionContinueState(0, state), ERR_NULL_OBJECT);
217 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
218 EXPECT_NE(distributedClient_->SetMissionContinueState(0, state), ERR_NULL_OBJECT);
219 MockMessageParcel::ClearAllErrorFlag();
220 GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState02 end.";
221 }
222
223 /**
224 * @tc.name: SetMissionContinueState03
225 * @tc.desc: SetMissionContinueState test
226 * @tc.type: FUNC
227 * @tc.require: #I6JLSI
228 */
229 HWTEST_F(DistributedClientTest, SetMissionContinueState03, Function | SmallTest | Level2)
230 {
231 GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState03 start.";
232 AAFwk::ContinueState state = AAFwk::ContinueState::CONTINUESTATE_MAX;
233 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
234 EXPECT_NE(distributedClient_->SetMissionContinueState(0, state), ERR_NULL_OBJECT);
235 MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
236 EXPECT_NE(distributedClient_->SetMissionContinueState(0, state), ERR_NULL_OBJECT);
237 MockMessageParcel::ClearAllErrorFlag();
238 GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState03 end.";
239 }
240 }
241 }
242