1 /*
2 * Copyright (c) 2022-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 "app_connection_stub_test.h"
17 #include "mock_remote_stub.h"
18 #include "test_log.h"
19
20 using namespace testing;
21 using namespace testing::ext;
22
23 namespace OHOS {
24 namespace DistributedSchedule {
25 namespace {
26 const std::u16string MOCK_INVALID_DESCRIPTOR = u"invalid descriptor";
27 }
28
SetUpTestCase()29 void AppConnectionStubTest::SetUpTestCase()
30 {
31 DTEST_LOG << "AppConnectionStubTest::SetUpTestCase" << std::endl;
32 }
33
TearDownTestCase()34 void AppConnectionStubTest::TearDownTestCase()
35 {
36 DTEST_LOG << "AppConnectionStubTest::TearDownTestCase" << std::endl;
37 }
38
TearDown()39 void AppConnectionStubTest::TearDown()
40 {
41 DTEST_LOG << "AppConnectionStubTest::TearDown" << std::endl;
42 }
43
SetUp()44 void AppConnectionStubTest::SetUp()
45 {
46 int32_t token = 0;
47 std::shared_ptr<ContinuationExtraParams> continuationExtraParams = std::make_shared<ContinuationExtraParams>();
48 appConnectionStub_ = new AppConnectionStub(token, continuationExtraParams);
49 DTEST_LOG << "AppConnectionStubTest::SetUp" << std::endl;
50 }
51
52 /**
53 * @tc.name: AppConnectionStubTest_001
54 * @tc.desc: invalid descriptor
55 * @tc.type: FUNC
56 */
57 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_001, TestSize.Level3)
58 {
59 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_001 begin" << std::endl;
60 ASSERT_NE(nullptr, appConnectionStub_);
61 int32_t code = 0;
62 MessageParcel data;
63 MessageParcel reply;
64 MessageOption option;
65
66 data.WriteInterfaceToken(MOCK_INVALID_DESCRIPTOR);
67 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
68 EXPECT_EQ(result, ERR_INVALID_STATE);
69 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_001 end" << std::endl;
70 }
71
72 /**
73 * @tc.name: AppConnectionStubTest_002
74 * @tc.desc: invalid element name
75 * @tc.type: FUNC
76 */
77 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_002, TestSize.Level3)
78 {
79 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_002 begin" << std::endl;
80 ASSERT_NE(nullptr, appConnectionStub_);
81 int32_t code = 0;
82 MessageParcel data;
83 MessageParcel reply;
84 MessageOption option;
85
86 data.WriteInterfaceToken(AppConnectionStub::GetDescriptor());
87 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
88 EXPECT_EQ(result, ERR_INVALID_VALUE);
89 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_002 end" << std::endl;
90 }
91
92 /**
93 * @tc.name: AppConnectionStubTest_003
94 * @tc.desc: test connect done
95 * @tc.type: FUNC
96 */
97 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_003, TestSize.Level3)
98 {
99 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_003 begin" << std::endl;
100 ASSERT_NE(nullptr, appConnectionStub_);
101 int32_t code = 0;
102 MessageParcel data;
103 MessageParcel reply;
104 MessageOption option;
105
106 data.WriteInterfaceToken(AppConnectionStub::GetDescriptor());
107 AppExecFwk::ElementName element;
108 data.WriteParcelable(&element);
109 code = AppConnectionStub::ON_ABILITY_CONNECT_DONE;
110 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
111 EXPECT_EQ(result, ERR_INVALID_DATA);
112 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_003 end" << std::endl;
113 }
114
115 /**
116 * @tc.name: AppConnectionStubTest_004
117 * @tc.desc: test disconnect done
118 * @tc.type: FUNC
119 */
120 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_004, TestSize.Level3)
121 {
122 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_004 begin" << std::endl;
123 ASSERT_NE(nullptr, appConnectionStub_);
124 int32_t code = 0;
125 MessageParcel data;
126 MessageParcel reply;
127 MessageOption option;
128
129 data.WriteInterfaceToken(AppConnectionStub::GetDescriptor());
130 AppExecFwk::ElementName element;
131 data.WriteParcelable(&element);
132 code = AppConnectionStub::ON_ABILITY_DISCONNECT_DONE;
133 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
134 EXPECT_EQ(result, ERR_NONE);
135 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_004 end" << std::endl;
136 }
137
138 /**
139 * @tc.name: AppConnectionStubTest_005
140 * @tc.desc: invalid code
141 * @tc.type: FUNC
142 */
143 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_005, TestSize.Level3)
144 {
145 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_005 begin" << std::endl;
146 ASSERT_NE(nullptr, appConnectionStub_);
147 int32_t code = 0;
148 MessageParcel data;
149 MessageParcel reply;
150 MessageOption option;
151
152 data.WriteInterfaceToken(AppConnectionStub::GetDescriptor());
153 AppExecFwk::ElementName element;
154 data.WriteParcelable(&element);
155 code = -1;
156 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
157 EXPECT_NE(result, ERR_NONE);
158 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_005 end" << std::endl;
159 }
160
161 /**
162 * @tc.name: AppConnectionStubTest_006
163 * @tc.desc: test connect done
164 * @tc.type: FUNC
165 */
166 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_006, TestSize.Level3)
167 {
168 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_006 begin" << std::endl;
169 ASSERT_NE(nullptr, appConnectionStub_);
170 int32_t code = 0;
171 MessageParcel data;
172 MessageParcel reply;
173 MessageOption option;
174
175 data.WriteInterfaceToken(AppConnectionStub::GetDescriptor());
176 AppExecFwk::ElementName element;
177 data.WriteParcelable(&element);
178 data.WriteRemoteObject((new MockRemoteStub())->AsObject());
179 code = AppConnectionStub::ON_ABILITY_CONNECT_DONE;
180 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
181 EXPECT_EQ(result, ERR_NONE);
182 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_006 end" << std::endl;
183 }
184
185 /**
186 * @tc.name: AppConnectionStubTest_007
187 * @tc.desc: nullptr
188 * @tc.type: FUNC
189 */
190 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_007, TestSize.Level3)
191 {
192 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_007 begin" << std::endl;
193 ASSERT_NE(nullptr, appConnectionStub_);
194 int32_t code = 0;
195 MessageParcel data;
196 MessageParcel reply;
197 MessageOption option;
198
199 data.WriteInterfaceToken(AppConnectionStub::GetDescriptor());
200 AppExecFwk::ElementName element;
201 data.WriteParcelable(&element);
202 data.WriteRemoteObject((new MockRemoteStub())->AsObject());
203 code = AppConnectionStub::ON_ABILITY_CONNECT_DONE;
204 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
205 EXPECT_EQ(result, ERR_NONE);
206 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_007 end" << std::endl;
207 }
208
209 /**
210 * @tc.name: AppConnectionStubTest_008
211 * @tc.desc: nullptr
212 * @tc.type: FUNC
213 */
214 HWTEST_F(AppConnectionStubTest, AppConnectionStubTest_008, TestSize.Level3)
215 {
216 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_008 begin" << std::endl;
217 ASSERT_NE(nullptr, appConnectionStub_);
218 int32_t code = 0;
219 MessageParcel data;
220 MessageParcel reply;
221 MessageOption option;
222
223 data.WriteInterfaceToken(AppConnectionStub::GetDescriptor());
224 AppExecFwk::ElementName element;
225 data.WriteParcelable(&element);
226 code = AppConnectionStub::ON_ABILITY_DISCONNECT_DONE;
227 int32_t result = appConnectionStub_->OnRemoteRequest(code, data, reply, option);
228 EXPECT_EQ(result, ERR_NONE);
229 DTEST_LOG << "AppConnectionStubTest AppConnectionStubTest_008 end" << std::endl;
230 }
231 }
232 }