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