1 /*
2 * Copyright (c) 2024 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 #define private public
17 #define protected public
18
19 #include "request_manager.h"
20
21 #include <gtest/gtest.h>
22
23 #include <cstdint>
24 #include <memory>
25 #include <vector>
26
27 #include "gmock/gmock.h"
28 #include "js_common.h"
29 #include "log.h"
30 #include "request_manager_impl.h"
31
32 using namespace testing::ext;
33 using namespace OHOS::Request;
34
35 #undef private
36 #undef protected
37
38 class RequestManagerTest : public testing::Test {
39 public:
40 static void SetUpTestCase(void);
41 static void TearDownTestCase(void);
42 void SetUp();
43 void TearDown();
44 };
45
SetUpTestCase(void)46 void RequestManagerTest::SetUpTestCase(void)
47 {
48 // input testSuit setup step,setup invoked before all testCases
49 }
50
TearDownTestCase(void)51 void RequestManagerTest::TearDownTestCase(void)
52 {
53 // input testSuit teardown step,teardown invoked after all testCases
54 }
55
SetUp(void)56 void RequestManagerTest::SetUp(void)
57 {
58 // input testCase setup step,setup invoked before each testCase
59 testing::UnitTest *test = testing::UnitTest::GetInstance();
60 ASSERT_NE(test, nullptr);
61 const testing::TestInfo *testInfo = test->current_test_info();
62 ASSERT_NE(testInfo, nullptr);
63 string testCaseName = string(testInfo->name());
64 REQUEST_HILOGI("[SetUp] %{public}s start", testCaseName.c_str());
65 GTEST_LOG_(INFO) << testCaseName.append(" start");
66 }
67
TearDown(void)68 void RequestManagerTest::TearDown(void)
69 {
70 // input testCase teardown step,teardown invoked after each testCase
71 }
72
73 /**
74 * @tc.name: CreateTest001
75 * @tc.desc: Test CreateTest001 interface base function - Create
76 * @tc.type: FUNC
77 * @tc.require: Issue Number
78 */
79 HWTEST_F(RequestManagerTest, CreateTest001, TestSize.Level1)
80 {
81 EXPECT_NE(RequestManager::GetInstance(), nullptr);
82 Config config;
83 int32_t seq = 1;
84 std::string tid = "1";
85 RequestManager::GetInstance()->Create(config, seq, tid);
86 }
87
88 /**
89 * @tc.name: GetTaskTest001
90 * @tc.desc: Test GetTaskTest001 interface base function - GetTask
91 * @tc.type: FUNC
92 * @tc.require: Issue Number
93 */
94 HWTEST_F(RequestManagerTest, GetTaskTest001, TestSize.Level1)
95 {
96 EXPECT_NE(RequestManager::GetInstance(), nullptr);
97 std::string tidStr = "tid";
98 std::string token = "token";
99 Config config;
100 int32_t seq = 1;
101 std::string tid = "1";
102 RequestManager::GetInstance()->Create(config, seq, tid);
103 RequestManager::GetInstance()->RequestManager::GetInstance()->GetTask(tidStr, token, config);
104 }
105
106 /**
107 * @tc.name: StartTest001
108 * @tc.desc: Test StartTest001 interface base function - Start
109 * @tc.type: FUNC
110 * @tc.require: Issue Number
111 */
112 HWTEST_F(RequestManagerTest, StartTest001, TestSize.Level1)
113 {
114 EXPECT_NE(RequestManager::GetInstance(), nullptr);
115 std::string tidStr = "tid";
116 RequestManager::GetInstance()->Start(tidStr);
117 }
118
119 /**
120 * @tc.name: StopTest001
121 * @tc.desc: Test StopTest001 interface base function - Stop
122 * @tc.type: FUNC
123 * @tc.require: Issue Number
124 */
125 HWTEST_F(RequestManagerTest, StopTest001, TestSize.Level1)
126 {
127 EXPECT_NE(RequestManager::GetInstance(), nullptr);
128 std::string tid = "tid";
129 RequestManager::GetInstance()->Stop(tid);
130 }
131
132 /**
133 * @tc.name: QueryTest001
134 * @tc.desc: Test QueryTest001 interface base function - Query
135 * @tc.type: FUNC
136 * @tc.require: Issue Number
137 */
138 HWTEST_F(RequestManagerTest, QueryTest001, TestSize.Level1)
139 {
140 EXPECT_NE(RequestManager::GetInstance(), nullptr);
141 std::string tid = "tid";
142 TaskInfo info;
143 RequestManager::GetInstance()->Query(tid, info);
144 }
145
146 /**
147 * @tc.name: TouchTest001
148 * @tc.desc: Test TouchTest001 interface base function - Touch
149 * @tc.type: FUNC
150 * @tc.require: Issue Number
151 */
152 HWTEST_F(RequestManagerTest, Touch001, TestSize.Level1)
153 {
154 EXPECT_NE(RequestManager::GetInstance(), nullptr);
155 std::string tid = "tid";
156 std::string token = "token";
157 TaskInfo info;
158 RequestManager::GetInstance()->Touch(tid, token, info);
159 }
160
161 /**
162 * @tc.name: SearchTest001
163 * @tc.desc: Test SearchTest001 interface base function - Search
164 * @tc.type: FUNC
165 * @tc.require: Issue Number
166 */
167 HWTEST_F(RequestManagerTest, SearchTest001, TestSize.Level1)
168 {
169 EXPECT_NE(RequestManager::GetInstance(), nullptr);
170 Filter filter;
171 std::vector<std::string> tids;
172 RequestManager::GetInstance()->Search(filter, tids);
173 }
174
175 /**
176 * @tc.name: ShowTest001
177 * @tc.desc: Test ShowTest001 interface base function - Show
178 * @tc.type: FUNC
179 * @tc.require: Issue Number
180 */
181 HWTEST_F(RequestManagerTest, ShowTest001, TestSize.Level1)
182 {
183 EXPECT_NE(RequestManager::GetInstance(), nullptr);
184 std::string tid = "tid";
185 TaskInfo info;
186 RequestManager::GetInstance()->Show(tid, info);
187 }
188
189 /**
190 * @tc.name: PauseTest001
191 * @tc.desc: Test PauseTest001 interface base function - Pause
192 * @tc.type: FUNC
193 * @tc.require: Issue Number
194 */
195 HWTEST_F(RequestManagerTest, PauseTest001, TestSize.Level1)
196 {
197 EXPECT_NE(RequestManager::GetInstance(), nullptr);
198 std::string tid = "tid";
199 RequestManager::GetInstance()->Pause(tid, Version::API9);
200 RequestManager::GetInstance()->Pause(tid, Version::API10);
201 }
202
203 /**
204 * @tc.name: QueryMimeTypeTest001
205 * @tc.desc: Test QueryMimeTypeTest001 interface base function - QueryMimeType
206 * @tc.type: FUNC
207 * @tc.require: Issue Number
208 */
209 HWTEST_F(RequestManagerTest, QueryMimeTypeTest001, TestSize.Level1)
210 {
211 EXPECT_NE(RequestManager::GetInstance(), nullptr);
212 std::string tid = "tid";
213 std::string mimeType = "mimeType";
214 RequestManager::GetInstance()->QueryMimeType(tid, mimeType);
215 }
216
217 /**
218 * @tc.name: RemoveTest001
219 * @tc.desc: Test RemoveTest001 interface base function - Remove
220 * @tc.type: FUNC
221 * @tc.require: Issue Number
222 */
223 HWTEST_F(RequestManagerTest, RemoveTest001, TestSize.Level1)
224 {
225 EXPECT_NE(RequestManager::GetInstance(), nullptr);
226 std::string tid = "tid";
227 RequestManager::GetInstance()->Remove(tid, Version::API9);
228 RequestManager::GetInstance()->Remove(tid, Version::API10);
229 }
230
231 /**
232 * @tc.name: ResumeTest001
233 * @tc.desc: Test ResumeTest001 interface base function - Resume
234 * @tc.type: FUNC
235 * @tc.require: Issue Number
236 */
237 HWTEST_F(RequestManagerTest, ResumeTest001, TestSize.Level1)
238 {
239 EXPECT_NE(RequestManager::GetInstance(), nullptr);
240 std::string tid = "tid";
241 RequestManager::GetInstance()->Resume(tid);
242 }
243
244 /**
245 * @tc.name: SubscribeTest001
246 * @tc.desc: Test SubscribeTest001 interface base function - Subscribe
247 * @tc.type: FUNC
248 * @tc.require: Issue Number
249 */
250 HWTEST_F(RequestManagerTest, SubscribeTest001, TestSize.Level1)
251 {
252 EXPECT_NE(RequestManager::GetInstance(), nullptr);
253 std::string taskId = "taskId";
254 RequestManager::GetInstance()->Subscribe(taskId);
255 }
256
257 /**
258 * @tc.name: UnsubscribeTest001
259 * @tc.desc: Test UnsubscribeTest001 interface base function - Unsubscribe
260 * @tc.type: FUNC
261 * @tc.require: Issue Number
262 */
263 HWTEST_F(RequestManagerTest, Unsubscribe001, TestSize.Level1)
264 {
265 EXPECT_NE(RequestManager::GetInstance(), nullptr);
266 std::string taskId = "taskId";
267 RequestManager::GetInstance()->Unsubscribe(taskId);
268 }
269
270 class RMTResponseListenerImpl : public IResponseListener {
271 public:
~RMTResponseListenerImpl()272 ~RMTResponseListenerImpl(){};
OnResponseReceive(const std::shared_ptr<Response> & response)273 void OnResponseReceive(const std::shared_ptr<Response> &response) override
274 {
275 (void)response;
276 return;
277 }
278 };
279
280 class RMTNotifyDataListenerImpl : public INotifyDataListener {
281 public:
~RMTNotifyDataListenerImpl()282 ~RMTNotifyDataListenerImpl(){};
OnNotifyDataReceive(const std::shared_ptr<NotifyData> & notifyData)283 void OnNotifyDataReceive(const std::shared_ptr<NotifyData> ¬ifyData) override
284 {
285 (void)notifyData;
286 return;
287 }
288 };
289
290 /**
291 * @tc.name: AddAndRemoveListenerTest001
292 * @tc.desc: Test AddAndRemoveListenerTest001 interface base function - AddListener/RemoveListener
293 * @tc.type: FUNC
294 * @tc.require: Issue Number
295 */
296 HWTEST_F(RequestManagerTest, AddAndRemoveListenerTest001, TestSize.Level1)
297 {
298 EXPECT_NE(RequestManager::GetInstance(), nullptr);
299 string taskId = "taskId";
300 SubscribeType type = SubscribeType::RESPONSE;
301 std::shared_ptr<RMTResponseListenerImpl> listener = std::make_shared<RMTResponseListenerImpl>();
302 RequestManager::GetInstance()->AddListener(taskId, type, listener);
303 RequestManager::GetInstance()->RemoveListener(taskId, type, listener);
304 type = SubscribeType::COMPLETED;
305 std::shared_ptr<RMTNotifyDataListenerImpl> listener2 = std::make_shared<RMTNotifyDataListenerImpl>();
306 RequestManager::GetInstance()->AddListener(taskId, type, listener2);
307 RequestManager::GetInstance()->RemoveListener(taskId, type, listener2);
308 }
309
TestRestoreCallback()310 void TestRestoreCallback()
311 {
312 }
313
314 /**
315 * @tc.name: RemoveAllListenersTest001
316 * @tc.desc: Test RemoveAllListenersTest001 interface base function - RemoveAllListeners
317 * @tc.type: FUNC
318 * @tc.require: Issue Number
319 */
320 HWTEST_F(RequestManagerTest, RemoveAllListenersTest001, TestSize.Level1)
321 {
322 string taskId = "taskId";
323 SubscribeType type = SubscribeType::RESPONSE;
324 std::shared_ptr<RMTResponseListenerImpl> listener = std::make_shared<RMTResponseListenerImpl>();
325 RequestManager::GetInstance()->AddListener(taskId, type, listener);
326 type = SubscribeType::COMPLETED;
327 std::shared_ptr<RMTNotifyDataListenerImpl> listener2 = std::make_shared<RMTNotifyDataListenerImpl>();
328 RequestManager::GetInstance()->AddListener(taskId, type, listener2);
329 RequestManager::GetInstance()->RemoveAllListeners(taskId);
330 RequestManager::GetInstance()->RestoreListener(TestRestoreCallback);
331 EXPECT_EQ(RequestManagerImpl::GetInstance()->callback_, TestRestoreCallback);
332 RequestManager::GetInstance()->RestoreListener(nullptr);
333 }
334
335 /**
336 * @tc.name: LoadRequestServerTest001
337 * @tc.desc: Test LoadRequestServerTest001 interface base function - LoadRequestServer
338 * @tc.type: FUNC
339 * @tc.require: Issue Number
340 */
341 HWTEST_F(RequestManagerTest, LoadRequestServerTest001, TestSize.Level1)
342 {
343 EXPECT_NE(RequestManager::GetInstance(), nullptr);
344 RequestManager::GetInstance()->LoadRequestServer();
345 }
346
347 /**
348 * @tc.name: IsSaReadyTest001
349 * @tc.desc: Test IsSaReadyTest001 interface base function - IsSaReady
350 * @tc.type: FUNC
351 * @tc.require: Issue Number
352 */
353 HWTEST_F(RequestManagerTest, IsSaReadyTest001, TestSize.Level1)
354 {
355 EXPECT_NE(RequestManager::GetInstance(), nullptr);
356 RequestManager::GetInstance()->IsSaReady();
357 }
358
359 /**
360 * @tc.name: ReopenChannelTest001
361 * @tc.desc: Test ReopenChannelTest001 interface base function - ReopenChannel
362 * @tc.type: FUNC
363 * @tc.require: Issue Number
364 */
365 HWTEST_F(RequestManagerTest, ReopenChannelTest001, TestSize.Level1)
366 {
367 EXPECT_NE(RequestManager::GetInstance(), nullptr);
368 RequestManager::GetInstance()->ReopenChannel();
369 }
370
371 /**
372 * @tc.name: SubscribeSATest001
373 * @tc.desc: Test SubscribeSATest001 interface base function - SubscribeSA
374 * @tc.type: FUNC
375 * @tc.require: Issue Number
376 */
377 HWTEST_F(RequestManagerTest, SubscribeSATest001, TestSize.Level1)
378 {
379 EXPECT_NE(RequestManager::GetInstance(), nullptr);
380 RequestManager::GetInstance()->SubscribeSA();
381 }
382
383 /**
384 * @tc.name: UnsubscribeSATest001
385 * @tc.desc: Test UnsubscribeSATest001 interface base function - UnsubscribeSA
386 * @tc.type: FUNC
387 * @tc.require: Issue Number
388 */
389 HWTEST_F(RequestManagerTest, UnsubscribeSATest001, TestSize.Level1)
390 {
391 EXPECT_NE(RequestManager::GetInstance(), nullptr);
392 RequestManager::GetInstance()->UnsubscribeSA();
393 }
394
395 /**
396 * @tc.name: GetNextSeqTest001
397 * @tc.desc: Test GetNextSeqTest001 interface base function - GetNextSeq
398 * @tc.type: FUNC
399 * @tc.require: Issue Number
400 */
401 HWTEST_F(RequestManagerTest, GetNextSeqTest001, TestSize.Level1)
402 {
403 int32_t ret = RequestManager::GetInstance()->GetNextSeq();
404 EXPECT_EQ(RequestManager::GetInstance()->GetNextSeq(), ret + 1);
405 }