• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 
19 #include "cloud_download_callback_stub.h"
20 #include "cloud_download_uri_manager.h"
21 #include "dfs_error.h"
22 #include "downgrade_download_callback_stub.h"
23 #include "i_cloud_download_callback_mock.h"
24 
25 namespace OHOS {
26 namespace FileManagement::CloudSync {
27 namespace Test {
28 using namespace testing;
29 using namespace testing::ext;
30 using namespace std;
31 
32 class DowngradeDownloadCallbackStubMock : public DowngradeDownloadCallbackStub {
33 public:
DowngradeDownloadCallbackStubMock()34     DowngradeDownloadCallbackStubMock() {}
OnDownloadProcess(const DowngradeProgress & progress)35     void OnDownloadProcess(const DowngradeProgress &progress) override {}
36 };
37 
38 class DowngradeDownloadCallbackStubTest : public testing::Test {
39 public:
40     static void SetUpTestCase(void);
41     static void TearDownTestCase(void);
42     void SetUp();
43     void TearDown();
44     std::shared_ptr<DowngradeDownloadCallbackStub> downgradeStub_;
45 };
46 
SetUpTestCase(void)47 void DowngradeDownloadCallbackStubTest::SetUpTestCase(void)
48 {
49     std::cout << "SetUpTestCase" << std::endl;
50 }
51 
TearDownTestCase(void)52 void DowngradeDownloadCallbackStubTest::TearDownTestCase(void)
53 {
54     std::cout << "TearDownTestCase" << std::endl;
55 }
56 
SetUp(void)57 void DowngradeDownloadCallbackStubTest::SetUp(void)
58 {
59     downgradeStub_ = std::make_shared<DowngradeDownloadCallbackStubMock>();
60     std::cout << "SetUp" << std::endl;
61 }
62 
TearDown(void)63 void DowngradeDownloadCallbackStubTest::TearDown(void)
64 {
65     std::cout << "TearDown" << std::endl;
66 }
67 
68 /**
69  * @tc.name: OnRemoteRequestTest001
70  * @tc.desc: Verify the OnRemoteRequest function.
71  * @tc.type: FUNC
72  * @tc.require: I6H5MH
73  */
74 HWTEST_F(DowngradeDownloadCallbackStubTest, OnRemoteRequestTest001, TestSize.Level1)
75 {
76     GTEST_LOG_(INFO) << "OnRemoteRequest Start";
77     try {
78         MessageParcel data;
79         MessageParcel reply;
80         MessageOption option;
81         EXPECT_EQ(E_SERVICE_DESCRIPTOR_IS_EMPTY,
82                   downgradeStub_->OnRemoteRequest(ICloudDownloadCallback::SERVICE_CMD_ON_PROCESS, data, reply, option));
83     } catch (...) {
84         EXPECT_TRUE(false);
85         GTEST_LOG_(INFO) << " OnRemoteRequest ERROR";
86     }
87     GTEST_LOG_(INFO) << "OnRemoteRequest End";
88 }
89 
90 /**
91  * @tc.name: OnRemoteRequestTest002
92  * @tc.desc: Verify the OnRemoteRequest function.
93  * @tc.type: FUNC
94  * @tc.require: I6H5MH
95  */
96 HWTEST_F(DowngradeDownloadCallbackStubTest, OnRemoteRequestTest002, TestSize.Level1)
97 {
98     GTEST_LOG_(INFO) << "OnRemoteRequest Start";
99     try {
100         uint32_t code = 100;
101         MessageParcel data;
102         MessageParcel reply;
103         MessageOption option;
104         EXPECT_TRUE(data.WriteInterfaceToken(ICloudDownloadCallback::GetDescriptor()));
105         int32_t ret = downgradeStub_->OnRemoteRequest(code, data, reply, option);
106         EXPECT_NE(E_OK, ret);
107     } catch (...) {
108         EXPECT_TRUE(false);
109         GTEST_LOG_(INFO) << " OnRemoteRequest ERROR";
110     }
111     GTEST_LOG_(INFO) << "OnRemoteRequest End";
112 }
113 
114 /**
115  * @tc.name: OnRemoteRequestTest003
116  * @tc.desc: Verify the OnRemoteRequest function.
117  * @tc.type: FUNC
118  * @tc.require: issueI7UYAL
119  */
120 HWTEST_F(DowngradeDownloadCallbackStubTest, OnRemoteRequestTest003, TestSize.Level1)
121 {
122     GTEST_LOG_(INFO) << "OnRemoteRequest Start";
123     try {
124         uint32_t code = ICloudDownloadCallback::SERVICE_CMD_ON_PROCESS;
125         MessageParcel data;
126         MessageParcel reply;
127         MessageOption option;
128         EXPECT_TRUE(data.WriteInterfaceToken(ICloudDownloadCallback::GetDescriptor()));
129         int32_t ret = downgradeStub_->OnRemoteRequest(code, data, reply, option);
130         EXPECT_NE(E_OK, ret);
131     } catch (...) {
132         EXPECT_TRUE(false);
133         GTEST_LOG_(INFO) << " OnRemoteRequest ERROR";
134     }
135     GTEST_LOG_(INFO) << "OnRemoteRequest End";
136 }
137 
138 /**
139  * @tc.name: HandleOnProcessTest001
140  * @tc.desc: Verify the HandleOnProcess function.
141  * @tc.type: FUNC
142  * @tc.require: I6H5MH
143  */
144 HWTEST_F(DowngradeDownloadCallbackStubTest, HandleOnProcessTest001, TestSize.Level1)
145 {
146     GTEST_LOG_(INFO) << "HandleOnProcess Start";
147     try {
148         MessageParcel data;
149         MessageParcel reply;
150         DowngradeProgress progress;
151         bool prog = data.WriteParcelable(&progress);
152         EXPECT_TRUE(prog);
153         int ret = downgradeStub_->HandleOnProcess(data, reply);
154         EXPECT_EQ(E_OK, ret);
155     } catch (...) {
156         EXPECT_TRUE(false);
157         GTEST_LOG_(INFO) << " HandleOnProcess ERROR";
158     }
159     GTEST_LOG_(INFO) << "HandleOnProcess End";
160 }
161 
162 /**
163  * @tc.name: HandleOnProcessTest002
164  * @tc.desc: Verify the HandleOnProcess function.
165  * @tc.type: FUNC
166  * @tc.require: I6H5MH
167  */
168 HWTEST_F(DowngradeDownloadCallbackStubTest, HandleOnProcessTest002, TestSize.Level1)
169 {
170     GTEST_LOG_(INFO) << "HandleOnProcess Start";
171     try {
172         MessageParcel data;
173         MessageParcel reply;
174         int32_t ret = downgradeStub_->HandleOnProcess(data, reply);
175         EXPECT_EQ(ret, E_INVAL_ARG);
176     } catch (...) {
177         EXPECT_TRUE(false);
178         GTEST_LOG_(INFO) << " HandleOnProcess ERROR";
179     }
180     GTEST_LOG_(INFO) << "HandleOnProcess End";
181 }
182 } // namespace Test
183 } // namespace FileManagement::CloudSync
184 } // namespace OHOS