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 "file_entity.h"
17 #include "fs_file.h"
18
19 #include <gtest/gtest.h>
20
21 namespace OHOS::FileManagement::ModuleFileIO::Test {
22 using namespace testing;
23 using namespace testing::ext;
24 using namespace std;
25
26 class FsFileTest : public testing::Test {
27 public:
28 static void SetUpTestCase(void);
29 static void TearDownTestCase(void);
30 void SetUp();
31 void TearDown();
32 unique_ptr<FileEntity> fileEntity;
33 unique_ptr<FsFile> fsFile;
34 };
35
SetUpTestCase(void)36 void FsFileTest::SetUpTestCase(void)
37 {
38 GTEST_LOG_(INFO) << "SetUpTestCase";
39 }
40
TearDownTestCase(void)41 void FsFileTest::TearDownTestCase(void)
42 {
43 GTEST_LOG_(INFO) << "TearDownTestCase";
44 }
45
SetUp(void)46 void FsFileTest::SetUp(void)
47 {
48 GTEST_LOG_(INFO) << "SetUp";
49
50 fileEntity = make_unique<FileEntity>();
51 const int fdValue = 3;
52 const bool isClosed = false;
53 fileEntity->fd_ = make_unique<DistributedFS::FDGuard>(fdValue, isClosed);
54 fileEntity->path_ = "/data/test/file_test.txt";
55 fileEntity->uri_ = "";
56 fsFile = make_unique<FsFile>(move(fileEntity));
57 }
58
TearDown(void)59 void FsFileTest::TearDown(void)
60 {
61 GTEST_LOG_(INFO) << "TearDown";
62 }
63
64 /**
65 * @tc.name: FsFileTest_Constructor_001
66 * @tc.desc: Test function of FsFile::Constructor() interface for SUCCESS.
67 * @tc.size: MEDIUM
68 * @tc.type: FUNC
69 * @tc.level Level 1
70 */
71 HWTEST_F(FsFileTest, FsFileTest_Constructor_001, testing::ext::TestSize.Level1)
72 {
73 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_Constructor_001";
74
75 auto result = FsFile::Constructor();
76 EXPECT_EQ(result.IsSuccess(), true);
77
78 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_Constructor_001";
79 }
80
81 /**
82 * @tc.name: FsFileTest_GetFD_002
83 * @tc.desc: Test function of GetFD() interface for SUCCESS.
84 * @tc.size: MEDIUM
85 * @tc.type: FUNC
86 * @tc.level Level 1
87 */
88 HWTEST_F(FsFileTest, FsFileTest_GetFD_002, testing::ext::TestSize.Level1)
89 {
90 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetFD_002";
91
92 auto result = fsFile->GetFD();
93 EXPECT_EQ(result.IsSuccess(), true);
94
95 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetFD_002";
96 }
97
98 /**
99 * @tc.name: FsFileTest_GetFD_003
100 * @tc.desc: Test function of GetFD() interface for ERROR.
101 * @tc.size: MEDIUM
102 * @tc.type: FUNC
103 * @tc.level Level 1
104 */
105 HWTEST_F(FsFileTest, FsFileTest_GetFD_003, testing::ext::TestSize.Level1)
106 {
107 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetFD_003";
108
109 fsFile = make_unique<FsFile>(nullptr);
110 auto result = fsFile->GetFD();
111 EXPECT_EQ(result.IsSuccess(), false);
112
113 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetFD_003";
114 }
115
116 /**
117 * @tc.name: FsFileTest_GetPath_004
118 * @tc.desc: Test function of GetPath() interface for ERROR.
119 * @tc.size: MEDIUM
120 * @tc.type: FUNC
121 * @tc.level Level 1
122 */
123 HWTEST_F(FsFileTest, FsFileTest_GetPath_004, testing::ext::TestSize.Level1)
124 {
125 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetPath_004";
126
127 fsFile = make_unique<FsFile>(nullptr);
128 auto result = fsFile->GetPath();
129 EXPECT_EQ(result.IsSuccess(), false);
130
131 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetPath_004";
132 }
133
134 /**
135 * @tc.name: FsFileTest_GetName_005
136 * @tc.desc: Test function of GetName() interface for ERROR.
137 * @tc.size: MEDIUM
138 * @tc.type: FUNC
139 * @tc.level Level 1
140 */
141 HWTEST_F(FsFileTest, FsFileTest_GetName_005, testing::ext::TestSize.Level1)
142 {
143 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetName_005";
144
145 fsFile = make_unique<FsFile>(nullptr);
146 auto result = fsFile->GetName();
147 EXPECT_EQ(result.IsSuccess(), false);
148
149 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetName_005";
150 }
151
152 /**
153 * @tc.name: FsFileTest_GetParent_006
154 * @tc.desc: Test function of GetParent() interface for ERROR.
155 * @tc.size: MEDIUM
156 * @tc.type: FUNC
157 * @tc.level Level 1
158 */
159 HWTEST_F(FsFileTest, FsFileTest_GetParent_006, testing::ext::TestSize.Level1)
160 {
161 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetParent_006";
162
163 fsFile = make_unique<FsFile>(nullptr);
164 auto result = fsFile->GetParent();
165 EXPECT_EQ(result.IsSuccess(), false);
166
167 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetParent_006";
168 }
169
170 /**
171 * @tc.name: FsFileTest_Lock_007
172 * @tc.desc: Test function of Lock() interface for ERROR.
173 * @tc.size: MEDIUM
174 * @tc.type: FUNC
175 * @tc.level Level 1
176 */
177 HWTEST_F(FsFileTest, FsFileTest_Lock_007, testing::ext::TestSize.Level1)
178 {
179 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_Lock_007";
180
181 fsFile = make_unique<FsFile>(nullptr);
182 auto result = fsFile->Lock(true);
183 EXPECT_EQ(result.IsSuccess(), false);
184
185 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_Lock_007";
186 }
187
188 /**
189 * @tc.name: FsFileTest_TryLock_008
190 * @tc.desc: Test function of TryLock() interface for ERROR.
191 * @tc.size: MEDIUM
192 * @tc.type: FUNC
193 * @tc.level Level 1
194 */
195 HWTEST_F(FsFileTest, FsFileTest_TryLock_008, testing::ext::TestSize.Level1)
196 {
197 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_TryLock_008";
198
199 fsFile = make_unique<FsFile>(nullptr);
200 auto result = fsFile->TryLock(true);
201 EXPECT_EQ(result.IsSuccess(), false);
202
203 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_TryLock_008";
204 }
205
206 /**
207 * @tc.name: FsFileTest_UnLock_009
208 * @tc.desc: Test function of UnLock() interface for ERROR.
209 * @tc.size: MEDIUM
210 * @tc.type: FUNC
211 * @tc.level Level 1
212 */
213 HWTEST_F(FsFileTest, FsFileTest_UnLock_009, testing::ext::TestSize.Level1)
214 {
215 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_UnLock_009";
216
217 fsFile = make_unique<FsFile>(nullptr);
218 auto result = fsFile->UnLock();
219 EXPECT_EQ(result.IsSuccess(), false);
220
221 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_UnLock_009";
222 }
223
224 /**
225 * @tc.name: FsFileTest_GetName_010
226 * @tc.desc: Test function of GetName() interface for SUCCESS.
227 * @tc.size: MEDIUM
228 * @tc.type: FUNC
229 * @tc.level Level 1
230 */
231 HWTEST_F(FsFileTest, FsFileTest_GetName_010, testing::ext::TestSize.Level1)
232 {
233 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetName_010";
234
235 fsFile->fileEntity->uri_ = "file://storage/file_test.txt";
236 auto result = fsFile->GetName();
237 EXPECT_EQ(result.IsSuccess(), true);
238
239 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetName_010";
240 }
241
242 /**
243 * @tc.name: FsFileTest_GetParent_011
244 * @tc.desc: Test function of GetParent() interface for SUCCESS.
245 * @tc.size: MEDIUM
246 * @tc.type: FUNC
247 * @tc.level Level 1
248 */
249 HWTEST_F(FsFileTest, FsFileTest_GetParent_011, testing::ext::TestSize.Level1)
250 {
251 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetParent_011";
252
253 fsFile->fileEntity->uri_ = "file://storage/file_test.txt";
254 auto result = fsFile->GetParent();
255 EXPECT_EQ(result.IsSuccess(), true);
256
257 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetParent_011";
258 }
259
260 /**
261 * @tc.name: FsFileTest_GetPath_012
262 * @tc.desc: Test function of GetPath() interface for SUCCESS.
263 * @tc.size: MEDIUM
264 * @tc.type: FUNC
265 * @tc.level Level 1
266 */
267 HWTEST_F(FsFileTest, FsFileTest_GetPath_012, testing::ext::TestSize.Level1)
268 {
269 GTEST_LOG_(INFO) << "FsFileTest-begin FsFileTest_GetPath_012";
270
271 fsFile->fileEntity->uri_ = "file://storage/file_test.txt";
272 auto result = fsFile->GetPath();
273 EXPECT_EQ(result.IsSuccess(), true);
274
275 GTEST_LOG_(INFO) << "FsFileTest-end FsFileTest_GetPath_012";
276 }
277
278 }