• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
47 private:
48     std::shared_ptr<DistributedClient> distributedClient_;
49 };
50 
SetUpTestCase()51 void DistributedClientTest::SetUpTestCase() {}
52 
TearDownTestCase()53 void DistributedClientTest::TearDownTestCase() {}
54 
SetUp()55 void DistributedClientTest::SetUp()
56 {
57     distributedClient_ = std::make_shared<DistributedClient>();
58     EXPECT_NE(nullptr, distributedClient_);
59 }
60 
TearDown()61 void DistributedClientTest::TearDown()
62 {
63     distributedClient_ = nullptr;
64 }
65 
66 namespace {
67 /**
68  * @tc.name: GetMissionInfos
69  * @tc.desc: GetMissionInfos test
70  * @tc.type: FUNC
71  * @tc.require: #I6JLSI
72  */
73 HWTEST_F(DistributedClientTest, GetMissionInfos, TestSize.Level1)
74 {
75     GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos start.";
76     const std::u16string DMS_PROXY_INTERFACE_TOKEN = u"ohos.distributedschedule.accessToken";
77     MessageParcel data;
78     MessageParcel reply;
79     MessageOption option;
80     std::vector<AAFwk::MissionInfo> missionInfos;
81     if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) {
82         EXPECT_EQ(distributedClient_->GetMissionInfos("", 0, missionInfos), ERR_FLATTEN_OBJECT);
83     }
84     EXPECT_EQ(distributedClient_->GetMissionInfos("", 0, missionInfos), AAFwk::INVALID_PARAMETERS_ERR);
85     GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos end.";
86 }
87 
88 /**
89  * @tc.name: GetMissionInfos02
90  * @tc.desc: GetMissionInfos test
91  * @tc.type: FUNC
92  * @tc.require: #I6JLSI
93  */
94 HWTEST_F(DistributedClientTest, GetMissionInfos02, TestSize.Level1)
95 {
96     GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos02 start.";
97     std::vector<AAFwk::MissionInfo> missionInfos;
98     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
99     EXPECT_NE(distributedClient_->GetMissionInfos("", 0, missionInfos), ERR_NONE);
100     MockMessageParcel::ClearAllErrorFlag();
101     GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos02 end.";
102 }
103 
104 /**
105  * @tc.name: GetMissionInfos03
106  * @tc.desc: GetMissionInfos test
107  * @tc.type: FUNC
108  * @tc.require: #I6JLSI
109  */
110 HWTEST_F(DistributedClientTest, GetMissionInfos03, TestSize.Level1)
111 {
112     GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos03 start.";
113     std::vector<AAFwk::MissionInfo> missionInfos;
114     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
115     EXPECT_NE(distributedClient_->GetMissionInfos("", 0, missionInfos), ERR_NONE);
116     MockMessageParcel::ClearAllErrorFlag();
117     GTEST_LOG_(INFO) << "DistributedClientTest GetMissionInfos03 end.";
118 }
119 } // namespace
120 
121 /**
122  * @tc.name: GetRemoteMissionSnapshotInfo
123  * @tc.desc: GetRemoteMissionSnapshotInfo test
124  * @tc.type: FUNC
125  * @tc.require: #I6JLSI
126  */
127 HWTEST_F(DistributedClientTest, GetRemoteMissionSnapshotInfo, TestSize.Level1)
128 {
129     GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo start.";
130     AAFwk::MissionSnapshot missionSnapshot;
131     EXPECT_EQ(distributedClient_->GetRemoteMissionSnapshotInfo("", 0, missionSnapshot), ERR_NULL_OBJECT);
132     GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo end.";
133 }
134 
135 /**
136  * @tc.name: GetRemoteMissionSnapshotInfo02
137  * @tc.desc: GetRemoteMissionSnapshotInfo test
138  * @tc.type: FUNC
139  * @tc.require: #I6JLSI
140  */
141 HWTEST_F(DistributedClientTest, GetRemoteMissionSnapshotInfo02, TestSize.Level1)
142 {
143     GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo02 start.";
144     std::string deviceID = "123456789";
145     AAFwk::MissionSnapshot missionSnapshot;
146     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
147     EXPECT_NE(distributedClient_->GetRemoteMissionSnapshotInfo(deviceID, 0, missionSnapshot), ERR_NONE);
148     MockMessageParcel::ClearAllErrorFlag();
149     GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo02 end.";
150 }
151 
152 /**
153  * @tc.name: GetRemoteMissionSnapshotInfo03
154  * @tc.desc: GetRemoteMissionSnapshotInfo test
155  * @tc.type: FUNC
156  * @tc.require: #I6JLSI
157  */
158 HWTEST_F(DistributedClientTest, GetRemoteMissionSnapshotInfo03, TestSize.Level1)
159 {
160     GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo03 start.";
161     std::string deviceID = "123456789";
162     AAFwk::MissionSnapshot missionSnapshot;
163     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
164     EXPECT_NE(distributedClient_->GetRemoteMissionSnapshotInfo(deviceID, 0, missionSnapshot), ERR_NONE);
165     MockMessageParcel::ClearAllErrorFlag();
166     GTEST_LOG_(INFO) << "DistributedClientTest GetRemoteMissionSnapshotInfo03 end.";
167 }
168 
169 /**
170  * @tc.name: ReadMissionInfosFromParcel
171  * @tc.desc: ReadMissionInfosFromParcel test
172  * @tc.type: FUNC
173  * @tc.require: #I6JLSI
174  */
175 HWTEST_F(DistributedClientTest, ReadMissionInfosFromParcel, TestSize.Level1)
176 {
177     GTEST_LOG_(INFO) << "DistributedClientTest ReadMissionInfosFromParcel start.";
178     std::vector<AAFwk::MissionInfo> missionInfos;
179     MessageParcel reply;
180     EXPECT_EQ(distributedClient_->ReadMissionInfosFromParcel(reply, missionInfos), true);
181     GTEST_LOG_(INFO) << "DistributedClientTest ReadMissionInfosFromParcel end.";
182 }
183 
184 /**
185  * @tc.name: SetMissionContinueState
186  * @tc.desc: SetMissionContinueState test
187  * @tc.type: FUNC
188  * @tc.require: #I6JLSI
189  */
190 HWTEST_F(DistributedClientTest, SetMissionContinueState, TestSize.Level1)
191 {
192     GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState start.";
193     AAFwk::ContinueState state = AAFwk::ContinueState::CONTINUESTATE_ACTIVE;
194     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
195     EXPECT_NE(distributedClient_->SetMissionContinueState(0, state, 0), ERR_NULL_OBJECT);
196     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
197     EXPECT_NE(distributedClient_->SetMissionContinueState(0, state, 0), ERR_NULL_OBJECT);
198     MockMessageParcel::ClearAllErrorFlag();
199     GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState end.";
200 }
201 
202 /**
203  * @tc.name: SetMissionContinueState02
204  * @tc.desc: SetMissionContinueState test
205  * @tc.type: FUNC
206  * @tc.require: #I6JLSI
207  */
208 HWTEST_F(DistributedClientTest, SetMissionContinueState02, TestSize.Level1)
209 {
210     GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState02 start.";
211     AAFwk::ContinueState state = AAFwk::ContinueState::CONTINUESTATE_INACTIVE;
212     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
213     EXPECT_NE(distributedClient_->SetMissionContinueState(0, state, 0), ERR_NULL_OBJECT);
214     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
215     EXPECT_NE(distributedClient_->SetMissionContinueState(0, state, 0), ERR_NULL_OBJECT);
216     MockMessageParcel::ClearAllErrorFlag();
217     GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState02 end.";
218 }
219 
220 /**
221  * @tc.name: SetMissionContinueState03
222  * @tc.desc: SetMissionContinueState test
223  * @tc.type: FUNC
224  * @tc.require: #I6JLSI
225  */
226 HWTEST_F(DistributedClientTest, SetMissionContinueState03, TestSize.Level1)
227 {
228     GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState03 start.";
229     AAFwk::ContinueState state = AAFwk::ContinueState::CONTINUESTATE_MAX;
230     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false);
231     EXPECT_NE(distributedClient_->SetMissionContinueState(0, state, 0), ERR_NULL_OBJECT);
232     MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true);
233     EXPECT_NE(distributedClient_->SetMissionContinueState(0, state, 0), ERR_NULL_OBJECT);
234     MockMessageParcel::ClearAllErrorFlag();
235     GTEST_LOG_(INFO) << "DistributedClientTest SetMissionContinueState03 end.";
236 }
237 } // namespace Rosen
238 } // namespace OHOS
239