1 /*
2  * Copyright (c) 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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 
19 #include "cloud_download_callback_client.h"
20 #include "dfs_error.h"
21 
22 namespace OHOS {
23 namespace FileManagement::CloudSync {
24 namespace Test {
25 using namespace testing::ext;
26 using namespace std;
27 
28 class CloudDownloadCallbackClientTest : public testing::Test {
29 public:
30     static void SetUpTestCase(void);
31     static void TearDownTestCase(void);
32     void SetUp();
33     void TearDown();
34 };
35 
36 class MockCloudDownloadCallback final : public CloudDownloadCallback {
37 public:
OnDownloadProcess(const DownloadProgressObj & progress)38     void OnDownloadProcess(const DownloadProgressObj &progress)
39     {
40         return;
41     }
42 };
43 
SetUpTestCase(void)44 void CloudDownloadCallbackClientTest::SetUpTestCase(void)
45 {
46     std::cout << "SetUpTestCase" << std::endl;
47 }
48 
TearDownTestCase(void)49 void CloudDownloadCallbackClientTest::TearDownTestCase(void)
50 {
51     std::cout << "TearDownTestCase" << std::endl;
52 }
53 
SetUp(void)54 void CloudDownloadCallbackClientTest::SetUp(void)
55 {
56     std::cout << "SetUp" << std::endl;
57 }
58 
TearDown(void)59 void CloudDownloadCallbackClientTest::TearDown(void)
60 {
61     std::cout << "TearDown" << std::endl;
62 }
63 
64 /**
65  * @tc.name: OnDownloadProcessTest001
66  * @tc.desc: Verify the OnDownloadProcess function.
67  * @tc.type: FUNC
68  * @tc.require: I6H5MH
69  */
70 HWTEST_F(CloudDownloadCallbackClientTest, OnDownloadProcessTest001, TestSize.Level1)
71 {
72     GTEST_LOG_(INFO) << "OnDownloadProcess Start";
73     try {
74         DownloadProgressObj progress;
75         std::shared_ptr<CloudDownloadCallback> callback = nullptr;
76         CloudDownloadCallbackClient cloudCallback(callback);
77         cloudCallback.OnDownloadProcess(progress);
78         EXPECT_TRUE(true);
79     } catch(...) {
80         EXPECT_TRUE(false);
81         GTEST_LOG_(INFO) << " OnDownloadProcess ERROR";
82     }
83     GTEST_LOG_(INFO) << "OnDownloadProcess End";
84 }
85 
86 /**
87  * @tc.name: OnDownloadProcessTest002
88  * @tc.desc: Verify the OnDownloadProcess function.
89  * @tc.type: FUNC
90  * @tc.require: I6H5MH
91  */
92 HWTEST_F(CloudDownloadCallbackClientTest, OnDownloadProcessTest002, TestSize.Level1)
93 {
94     GTEST_LOG_(INFO) << "OnDownloadProcess Start";
95     try {
96         DownloadProgressObj progress;
97         std::shared_ptr<CloudDownloadCallback> callback = std::make_shared<MockCloudDownloadCallback>();
98         CloudDownloadCallbackClient cloudCallback(callback);
99         cloudCallback.OnDownloadProcess(progress);
100         EXPECT_TRUE(true);
101     } catch(...) {
102         EXPECT_TRUE(false);
103         GTEST_LOG_(INFO) << " OnDownloadProcess ERROR";
104     }
105     GTEST_LOG_(INFO) << "OnDownloadProcess End";
106 }
107 
108 } // namespace Test
109 } // namespace FileManagement::CloudSync
110 } // namespace OHOS
111