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 #include "stop_user_callback_stub.h"
18 #include "message_parcel.h"
19
20 using namespace testing::ext;
21 using namespace OHOS::AAFwk;
22 using namespace OHOS;
23 using namespace testing;
24
25 class MockStopUserCallbackStub : public StopUserCallbackStub {
26 public:
27 MockStopUserCallbackStub() = default;
~MockStopUserCallbackStub()28 virtual ~MockStopUserCallbackStub()
29 {}
OnStopUserDone(int userId,int errcode)30 void OnStopUserDone(int userId, int errcode) override
31 {}
32 };
33
34 class StopUserCallbackStubTest : public testing::Test {
35 public:
36 static void SetUpTestCase(void);
37 static void TearDownTestCase(void);
38 void SetUp();
39 void TearDown();
40 };
41
SetUpTestCase(void)42 void StopUserCallbackStubTest::SetUpTestCase(void)
43 {}
TearDownTestCase(void)44 void StopUserCallbackStubTest::TearDownTestCase(void)
45 {}
SetUp()46 void StopUserCallbackStubTest::SetUp()
47 {}
TearDown()48 void StopUserCallbackStubTest::TearDown()
49 {}
50
51 /**
52 * @tc.name: StopUserCallbackStubTest_001
53 * @tc.desc: Verify OnRemoteRequest
54 * @tc.type: FUNC
55 */
56 HWTEST_F(StopUserCallbackStubTest, StopUserCallbackStubTest_001, TestSize.Level1)
57 {
58 GTEST_LOG_(INFO) << "StopUserCallbackStubTest_001 start";
59 std::shared_ptr<StopUserCallbackStub> backStub = std::make_shared<MockStopUserCallbackStub>();
60 uint32_t code = 1;
61 MessageParcel data;
62 MessageParcel reply;
63 MessageOption option;
64 std::u16string value = u"ohos.abilityshell.DistributedConnection";
65 data.WriteString16(value);
66 auto result = backStub->OnRemoteRequest(code, data, reply, option);
67
68 EXPECT_EQ(result, ERR_INVALID_STATE);
69 GTEST_LOG_(INFO) << "StopUserCallbackStubTest_001 end";
70 }
71
72 /**
73 * @tc.name: StopUserCallbackStubTest_002
74 * @tc.desc: Verify OnRemoteRequest
75 * @tc.type: FUNC
76 */
77 HWTEST_F(StopUserCallbackStubTest, StopUserCallbackStubTest_002, TestSize.Level1)
78 {
79 GTEST_LOG_(INFO) << "StopUserCallbackStubTest_002 start";
80 std::shared_ptr<StopUserCallbackStub> backStub = std::make_shared<MockStopUserCallbackStub>();
81 uint32_t code = 2;
82 MessageParcel data;
83 MessageParcel reply;
84 MessageOption option;
85 std::u16string metaDescriptor_ = u"ohos.aafwk.StopUserCallback";
86 data.WriteInterfaceToken(metaDescriptor_);
87 auto result = backStub->OnRemoteRequest(code, data, reply, option);
88
89 EXPECT_EQ(result, IPC_STUB_UNKNOW_TRANS_ERR);
90 GTEST_LOG_(INFO) << "StopUserCallbackStubTest_002 end";
91 }
92
93 /**
94 * @tc.name: StopUserCallbackStubTest_003
95 * @tc.desc: Verify OnRemoteRequest
96 * @tc.type: FUNC
97 */
98 HWTEST_F(StopUserCallbackStubTest, StopUserCallbackStubTest_003, TestSize.Level1)
99 {
100 GTEST_LOG_(INFO) << "StopUserCallbackStubTest_003 start";
101 std::shared_ptr<StopUserCallbackStub> backStub = std::make_shared<MockStopUserCallbackStub>();
102 uint32_t code = 0;
103 MessageParcel data;
104 MessageParcel reply;
105 MessageOption option;
106 std::u16string metaDescriptor_ = u"ohos.aafwk.StopUserCallback";
107 data.WriteInterfaceToken(metaDescriptor_);
108 auto result = backStub->OnRemoteRequest(code, data, reply, option);
109
110 EXPECT_EQ(result, ERR_NONE);
111 GTEST_LOG_(INFO) << "StopUserCallbackStubTest_003 end";
112 }
113