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