• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 <gtest/gtest.h>
17 
18 #define protected public
19 #include "ability_command.h"
20 #undef protected
21 #include "mock_ability_manager_stub.h"
22 #define private public
23 #include "ability_manager_client.h"
24 #undef private
25 #include "ability_manager_interface.h"
26 
27 using namespace testing::ext;
28 using namespace OHOS;
29 using namespace OHOS::AAFwk;
30 
31 class AaCommandStopServiceTest : public ::testing::Test {
32 public:
33     static void SetUpTestCase();
34     static void TearDownTestCase();
35     void SetUp() override;
36     void TearDown() override;
37 
38     void MakeMockObjects() const;
39 
40     std::string cmd_ = "stop-service";
41 };
42 
SetUpTestCase()43 void AaCommandStopServiceTest::SetUpTestCase()
44 {}
45 
TearDownTestCase()46 void AaCommandStopServiceTest::TearDownTestCase()
47 {}
48 
SetUp()49 void AaCommandStopServiceTest::SetUp()
50 {
51     // reset optind to 0
52     optind = 0;
53 
54     // make mock objects
55     MakeMockObjects();
56 }
57 
TearDown()58 void AaCommandStopServiceTest::TearDown()
59 {}
60 
MakeMockObjects() const61 void AaCommandStopServiceTest::MakeMockObjects() const
62 {
63     // mock a stub
64     auto managerStubPtr = sptr<IRemoteObject>(new MockAbilityManagerStub());
65 
66     // set the mock stub
67     auto managerClientPtr = AbilityManagerClient::GetInstance();
68     managerClientPtr->remoteObject_ = managerStubPtr;
69 }
70 
71 /**
72  * @tc.number: Aa_Command_StopService_0100
73  * @tc.name: ExecCommand
74  * @tc.desc: Verify the "aa stop-service" command.
75  */
76 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0100, Function | MediumTest | Level1)
77 {
78     char *argv[] = {
79         (char *)TOOL_NAME.c_str(),
80         (char *)cmd_.c_str(),
81         (char *)"",
82     };
83     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
84 
85     AbilityManagerShellCommand cmd(argc, argv);
86     EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_STOP_SERVICE);
87 }
88 
89 /**
90  * @tc.number: Aa_Command_StopService_0200
91  * @tc.name: ExecCommand
92  * @tc.desc: Verify the "aa stop-service xxx" command.
93  */
94 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0200, Function | MediumTest | Level1)
95 {
96     char *argv[] = {
97         (char *)TOOL_NAME.c_str(),
98         (char *)cmd_.c_str(),
99         (char *)"xxx",
100         (char *)"",
101     };
102     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
103 
104     AbilityManagerShellCommand cmd(argc, argv);
105     EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_STOP_SERVICE);
106 }
107 
108 /**
109  * @tc.number: Aa_Command_StopService_0300
110  * @tc.name: ExecCommand
111  * @tc.desc: Verify the "aa stop-service -x" command.
112  */
113 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0300, Function | MediumTest | Level1)
114 {
115     char *argv[] = {
116         (char *)TOOL_NAME.c_str(),
117         (char *)cmd_.c_str(),
118         (char *)"-x",
119         (char *)"",
120     };
121     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
122 
123     AbilityManagerShellCommand cmd(argc, argv);
124     EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_STOP_SERVICE);
125 }
126 
127 /**
128  * @tc.number: Aa_Command_StopService_0400
129  * @tc.name: ExecCommand
130  * @tc.desc: Verify the "aa stop-service -xxx" command.
131  */
132 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0400, Function | MediumTest | Level1)
133 {
134     char *argv[] = {
135         (char *)TOOL_NAME.c_str(),
136         (char *)cmd_.c_str(),
137         (char *)"-xxx",
138         (char *)"",
139     };
140     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
141 
142     AbilityManagerShellCommand cmd(argc, argv);
143     EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_STOP_SERVICE);
144 }
145 
146 /**
147  * @tc.number: Aa_Command_StopService_0500
148  * @tc.name: ExecCommand
149  * @tc.desc: Verify the "aa stop-service --x" command.
150  */
151 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0500, Function | MediumTest | Level1)
152 {
153     char *argv[] = {
154         (char *)TOOL_NAME.c_str(),
155         (char *)cmd_.c_str(),
156         (char *)"--x",
157         (char *)"",
158     };
159     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
160 
161     AbilityManagerShellCommand cmd(argc, argv);
162     EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_STOP_SERVICE);
163 }
164 
165 /**
166  * @tc.number: Aa_Command_StopService_0600
167  * @tc.name: ExecCommand
168  * @tc.desc: Verify the "aa stop-service --xxx" command.
169  */
170 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0600, Function | MediumTest | Level1)
171 {
172     char *argv[] = {
173         (char *)TOOL_NAME.c_str(),
174         (char *)cmd_.c_str(),
175         (char *)"--xxx",
176         (char *)"",
177     };
178     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
179 
180     AbilityManagerShellCommand cmd(argc, argv);
181     EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_STOP_SERVICE);
182 }
183 
184 /**
185  * @tc.number: Aa_Command_StopService_0700
186  * @tc.name: ExecCommand
187  * @tc.desc: Verify the "aa stop-service -h" command.
188  */
189 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0700, Function | MediumTest | Level1)
190 {
191     char *argv[] = {
192         (char *)TOOL_NAME.c_str(),
193         (char *)cmd_.c_str(),
194         (char *)"-h",
195         (char *)"",
196     };
197     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
198 
199     AbilityManagerShellCommand cmd(argc, argv);
200     EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_STOP_SERVICE);
201 }
202 
203 /**
204  * @tc.number: Aa_Command_StopService_0800
205  * @tc.name: ExecCommand
206  * @tc.desc: Verify the "aa stop-service --help" command.
207  */
208 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0800, Function | MediumTest | Level1)
209 {
210     char *argv[] = {
211         (char *)TOOL_NAME.c_str(),
212         (char *)cmd_.c_str(),
213         (char *)"--help",
214         (char *)"",
215     };
216     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
217 
218     AbilityManagerShellCommand cmd(argc, argv);
219     EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_STOP_SERVICE);
220 }
221 
222 /**
223  * @tc.number: Aa_Command_StopService_0900
224  * @tc.name: ExecCommand
225  * @tc.desc: Verify the "aa stop-service -d" command.
226  */
227 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_0900, Function | MediumTest | Level1)
228 {
229     char *argv[] = {
230         (char *)TOOL_NAME.c_str(),
231         (char *)cmd_.c_str(),
232         (char *)"-d",
233         (char *)"",
234     };
235     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
236 
237     AbilityManagerShellCommand cmd(argc, argv);
238     EXPECT_EQ(cmd.ExecCommand(), "error: option requires a value.\n" + HELP_MSG_STOP_SERVICE);
239 }
240 
241 /**
242  * @tc.number: Aa_Command_StopService_1000
243  * @tc.name: ExecCommand
244  * @tc.desc: Verify the "aa stop-service -d <device-id>" command.
245  */
246 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1000, Function | MediumTest | Level1)
247 {
248     char *argv[] = {
249         (char *)TOOL_NAME.c_str(),
250         (char *)cmd_.c_str(),
251         (char *)"-d",
252         (char *)STRING_DEVICE.c_str(),
253         (char *)"",
254     };
255     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
256 
257     AbilityManagerShellCommand cmd(argc, argv);
258     EXPECT_EQ(cmd.ExecCommand(),
259         HELP_MSG_NO_ABILITY_NAME_OPTION + "\n" + HELP_MSG_NO_BUNDLE_NAME_OPTION + "\n" + HELP_MSG_STOP_SERVICE);
260 }
261 
262 /**
263  * @tc.number: Aa_Command_StopService_1100
264  * @tc.name: ExecCommand
265  * @tc.desc: Verify the "aa stop-service -d <device-id> -a" command.
266  */
267 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1100, Function | MediumTest | Level1)
268 {
269     char *argv[] = {
270         (char *)TOOL_NAME.c_str(),
271         (char *)cmd_.c_str(),
272         (char *)"-d",
273         (char *)STRING_DEVICE.c_str(),
274         (char *)"-a",
275         (char *)"",
276     };
277     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
278 
279     AbilityManagerShellCommand cmd(argc, argv);
280     EXPECT_EQ(cmd.ExecCommand(), "error: option requires a value.\n" + HELP_MSG_STOP_SERVICE);
281 }
282 
283 /**
284  * @tc.number: Aa_Command_StopService_1200
285  * @tc.name: ExecCommand
286  * @tc.desc: Verify the "aa stop-service -d <device-id> -a <ability-name>" command.
287  */
288 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1200, Function | MediumTest | Level1)
289 {
290     char *argv[] = {
291         (char *)TOOL_NAME.c_str(),
292         (char *)cmd_.c_str(),
293         (char *)"-d",
294         (char *)STRING_DEVICE.c_str(),
295         (char *)"-a",
296         (char *)STRING_ABILITY_NAME.c_str(),
297         (char *)"",
298     };
299     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
300 
301     AbilityManagerShellCommand cmd(argc, argv);
302     EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_BUNDLE_NAME_OPTION + "\n" + HELP_MSG_STOP_SERVICE);
303 }
304 
305 /**
306  * @tc.number: Aa_Command_StopService_1300
307  * @tc.name: ExecCommand
308  * @tc.desc: Verify the "aa stop-service -d <device-id> -b" command.
309  */
310 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1300, Function | MediumTest | Level1)
311 {
312     char *argv[] = {
313         (char *)TOOL_NAME.c_str(),
314         (char *)cmd_.c_str(),
315         (char *)"-d",
316         (char *)STRING_DEVICE.c_str(),
317         (char *)"-b",
318         (char *)"",
319     };
320     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
321 
322     AbilityManagerShellCommand cmd(argc, argv);
323     EXPECT_EQ(cmd.ExecCommand(), "error: option requires a value.\n" + HELP_MSG_STOP_SERVICE);
324 }
325 
326 /**
327  * @tc.number: Aa_Command_StopService_1400
328  * @tc.name: ExecCommand
329  * @tc.desc: Verify the "aa stop-service -d <device-id> -b <bundle-name>" command.
330  */
331 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1400, Function | MediumTest | Level1)
332 {
333     char *argv[] = {
334         (char *)TOOL_NAME.c_str(),
335         (char *)cmd_.c_str(),
336         (char *)"-d",
337         (char *)STRING_DEVICE.c_str(),
338         (char *)"-b",
339         (char *)STRING_BUNDLE_NAME.c_str(),
340         (char *)"",
341     };
342     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
343 
344     AbilityManagerShellCommand cmd(argc, argv);
345     EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_ABILITY_NAME_OPTION + "\n" + HELP_MSG_STOP_SERVICE);
346 }
347 
348 /**
349  * @tc.number: Aa_Command_StopService_1500
350  * @tc.name: ExecCommand
351  * @tc.desc: Verify the "aa stop-service -d <device-id> -a <ability-name> -b" command.
352  */
353 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1500, Function | MediumTest | Level1)
354 {
355     char *argv[] = {
356         (char *)TOOL_NAME.c_str(),
357         (char *)cmd_.c_str(),
358         (char *)"-d",
359         (char *)STRING_DEVICE.c_str(),
360         (char *)"-a",
361         (char *)STRING_ABILITY_NAME.c_str(),
362         (char *)"-b",
363         (char *)"",
364     };
365     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
366 
367     AbilityManagerShellCommand cmd(argc, argv);
368     EXPECT_EQ(cmd.ExecCommand(), "error: option requires a value.\n" + HELP_MSG_STOP_SERVICE);
369 }
370 
371 /**
372  * @tc.number: Aa_Command_StopService_1600
373  * @tc.name: ExecCommand
374  * @tc.desc: Verify the "aa stop-service -d <device-id> -a <ability-name> -b <bundle-name>" command.
375  */
376 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1600, Function | MediumTest | Level1)
377 {
378     char *argv[] = {
379         (char *)TOOL_NAME.c_str(),
380         (char *)cmd_.c_str(),
381         (char *)"-d",
382         (char *)STRING_DEVICE.c_str(),
383         (char *)"-a",
384         (char *)STRING_ABILITY_NAME.c_str(),
385         (char *)"-b",
386         (char *)STRING_BUNDLE_NAME.c_str(),
387         (char *)"",
388     };
389     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
390 
391     AbilityManagerShellCommand cmd(argc, argv);
392     EXPECT_EQ(cmd.ExecCommand(), STRING_STOP_SERVICE_ABILITY_OK + "\n");
393 }
394 
395 /**
396  * @tc.number: Aa_Command_StopService_1700
397  * @tc.name: ExecCommand
398  * @tc.desc: Verify the "aa stop-service -a" command.
399  */
400 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1700, Function | MediumTest | Level1)
401 {
402     char *argv[] = {
403         (char *)TOOL_NAME.c_str(),
404         (char *)cmd_.c_str(),
405         (char *)"-a",
406         (char *)"",
407     };
408     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
409 
410     AbilityManagerShellCommand cmd(argc, argv);
411     EXPECT_EQ(cmd.ExecCommand(), "error: option requires a value.\n" + HELP_MSG_STOP_SERVICE);
412 }
413 
414 /**
415  * @tc.number: Aa_Command_StopService_1800
416  * @tc.name: ExecCommand
417  * @tc.desc: Verify the "aa stop-service -a <ability-name> -b" command.
418  */
419 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1800, Function | MediumTest | Level1)
420 {
421     char *argv[] = {
422         (char *)TOOL_NAME.c_str(),
423         (char *)cmd_.c_str(),
424         (char *)"-a",
425         (char *)STRING_ABILITY_NAME.c_str(),
426         (char *)"-b",
427         (char *)"",
428     };
429     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
430 
431     AbilityManagerShellCommand cmd(argc, argv);
432     EXPECT_EQ(cmd.ExecCommand(), "error: option requires a value.\n" + HELP_MSG_STOP_SERVICE);
433 }
434 
435 /**
436  * @tc.number: Aa_Command_StopService_1900
437  * @tc.name: ExecCommand
438  * @tc.desc: Verify the "aa stop-service -a <ability-name> -b <bundle-name>" command.
439  */
440 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_1900, Function | MediumTest | Level1)
441 {
442     char *argv[] = {
443         (char *)TOOL_NAME.c_str(),
444         (char *)cmd_.c_str(),
445         (char *)"-a",
446         (char *)STRING_ABILITY_NAME.c_str(),
447         (char *)"-b",
448         (char *)STRING_BUNDLE_NAME.c_str(),
449         (char *)"",
450     };
451     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
452 
453     AbilityManagerShellCommand cmd(argc, argv);
454     EXPECT_EQ(cmd.ExecCommand(), STRING_STOP_SERVICE_ABILITY_OK + "\n");
455 }
456 
457 /**
458  * @tc.number: Aa_Command_StopService_2000
459  * @tc.name: ExecCommand
460  * @tc.desc: Verify the "aa stop-service -d <device-id> -a <ability-name> -b <bundle-name>" command.
461  */
462 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_2000, Function | MediumTest | Level1)
463 {
464     char *argv[] = {
465         (char *)TOOL_NAME.c_str(),
466         (char *)cmd_.c_str(),
467         (char *)"-d",
468         (char *)STRING_DEVICE.c_str(),
469         (char *)"-a",
470         (char *)STRING_ABILITY_NAME_INVALID.c_str(),
471         (char *)"-b",
472         (char *)STRING_BUNDLE_NAME.c_str(),
473         (char *)"",
474     };
475     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
476 
477     AbilityManagerShellCommand cmd(argc, argv);
478     EXPECT_EQ(
479         cmd.ExecCommand(), STRING_STOP_SERVICE_ABILITY_NG + "\n" + cmd.messageMap_.at(RESOLVE_ABILITY_ERR) + "\n");
480 }
481 
482 /**
483  * @tc.number: Aa_Command_StopService_2100
484  * @tc.name: ExecCommand
485  * @tc.desc: Verify the "aa stop-service -d <device-id> -a <ability-name> -b <bundle-name>" command.
486  */
487 HWTEST_F(AaCommandStopServiceTest, Aa_Command_StopService_2100, Function | MediumTest | Level1)
488 {
489     char *argv[] = {
490         (char *)TOOL_NAME.c_str(),
491         (char *)cmd_.c_str(),
492         (char *)"-d",
493         (char *)STRING_DEVICE.c_str(),
494         (char *)"-a",
495         (char *)STRING_ABILITY_NAME.c_str(),
496         (char *)"-b",
497         (char *)STRING_BUNDLE_NAME_INVALID.c_str(),
498         (char *)"",
499     };
500     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
501 
502     AbilityManagerShellCommand cmd(argc, argv);
503     EXPECT_EQ(cmd.ExecCommand(), STRING_STOP_SERVICE_ABILITY_NG + "\n" + cmd.messageMap_.at(RESOLVE_APP_ERR) + "\n");
504 }
505