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 "download_asset_callback_client.h"
20 #include "asset_callback_mock.h"
21 #include "dfs_error.h"
22 #include "utils_log.h"
23
24 namespace OHOS {
25 namespace FileManagement::CloudSync {
26 namespace Test {
27 using namespace testing::ext;
28 using namespace std;
29
30 class DownloadAssetCallbackClientTest : public testing::Test {
31 public:
32 using TaskId = uint64_t;
33 static void SetUpTestCase(void);
34 static void TearDownTestCase(void);
35 void SetUp();
36 void TearDown();
37 };
38
SetUpTestCase(void)39 void DownloadAssetCallbackClientTest::SetUpTestCase(void)
40 {
41 std::cout << "SetUpTestCase" << std::endl;
42 }
43
TearDownTestCase(void)44 void DownloadAssetCallbackClientTest::TearDownTestCase(void)
45 {
46 std::cout << "TearDownTestCase" << std::endl;
47 }
48
SetUp(void)49 void DownloadAssetCallbackClientTest::SetUp(void)
50 {
51 std::cout << "SetUp" << std::endl;
52 }
53
TearDown(void)54 void DownloadAssetCallbackClientTest::TearDown(void)
55 {
56 std::cout << "TearDown" << std::endl;
57 }
58
59 /**
60 * @tc.name: OnFinishedTest001
61 * @tc.desc: Verify the OnFinished function
62 * @tc.type: FUNC
63 * @tc.require: issuesI91IOG
64 */
65 HWTEST_F(DownloadAssetCallbackClientTest, OnFinishedTest001, TestSize.Level1)
66 {
67 DownloadAssetCallbackClient client;
68 TaskId taskId = 1;
69 std::string uri = "file://data/file/test";
70 int32_t result = 0;
__anon42f483890102(const std::string &uri, const int32_t result) 71 auto callback = [](const std::string &uri, const int32_t result) {
72 EXPECT_EQ(uri, "file://data/file/test");
73 EXPECT_EQ(result, 0);
74 };
75 client.GetDownloadTaskCallback(taskId) = callback;
76
77 client.OnFinished(taskId, uri, result);
78
79 EXPECT_EQ(client.GetDownloadTaskCallback(taskId), nullptr);
80 }
81
82 /**
83 * @tc.name: OnFinishedTest002
84 * @tc.desc: Verify the OnFinished function
85 * @tc.type: FUNC
86 * @tc.require: issuesI91IOG
87 */
88 HWTEST_F(DownloadAssetCallbackClientTest, OnFinishedTest002, TestSize.Level1)
89 {
90 DownloadAssetCallbackClient client;
91 TaskId taskId = 1;
92 std::string uri = "file://data/file/test";
93 int32_t result = 0;
94
95 client.OnFinished(taskId, uri, result);
96
97 EXPECT_EQ(client.GetDownloadTaskCallback(taskId), nullptr);
98 }
99
100 /**
101 * @tc.name: RemoveDownloadTaskCallbackTest001
102 * @tc.desc: Verify the OnFinished function
103 * @tc.type: FUNC
104 * @tc.require: issuesI91IOG
105 */
106 HWTEST_F(DownloadAssetCallbackClientTest, RemoveDownloadTaskCallbackTest001, TestSize.Level1)
107 {
108 GTEST_LOG_(INFO) << "RemoveDownloadTaskCallbackTest001 Start";
109 try {
110 DownloadAssetCallbackClient client;
111 TaskId taskId = 1;
112 CloudSyncAssetManager::ResultCallback callback;
113 client.callbackListMap_.Insert(taskId, callback);
114 client.RemoveDownloadTaskCallback(taskId);
115
116 EXPECT_FALSE(client.callbackListMap_.Find(taskId, callback));
117 } catch (...) {
118 EXPECT_TRUE(false);
119 GTEST_LOG_(INFO) << "RemoveDownloadTaskCallbackTest001 ERROR";
120 }
121 GTEST_LOG_(INFO) << "RemoveDownloadTaskCallbackTest001 End";
122 }
123
124 /**
125 * @tc.name: GetDownloadTaskCallbackTest001
126 * @tc.desc: Verify the GetDownloadTaskCallback function
127 * @tc.type: FUNC
128 * @tc.require: issuesI91IOG
129 */
130 HWTEST_F(DownloadAssetCallbackClientTest, GetDownloadTaskCallbackTest001, TestSize.Level1)
131 {
132 GTEST_LOG_(INFO) << "GetDownloadTaskCallbackTest001 Start";
133 try {
134 DownloadAssetCallbackClient downloadAssetCallbackClient;
135 TaskId taskId = 1;
__anon42f483890202(const std::string &, int32_t) 136 CloudSyncAssetManager::ResultCallback callback = [](const std::string &, int32_t) {};
137 auto result = downloadAssetCallbackClient.GetDownloadTaskCallback(taskId);
138
139 EXPECT_TRUE(result == nullptr);
140 } catch (...) {
141 EXPECT_TRUE(false);
142 GTEST_LOG_(INFO) << "GetDownloadTaskCallbackTest001 ERROR";
143 }
144 GTEST_LOG_(INFO) << "GetDownloadTaskCallbackTest001 End";
145 }
146
147 } // namespace Test
148 } // namespace FileManagement::CloudSync
149 } // namespace OHOS
150