|
28 | 28 | import org.apache.dolphinscheduler.spi.enums.ResourceType; |
29 | 29 |
|
30 | 30 | import java.nio.file.FileAlreadyExistsException; |
| 31 | +import java.nio.file.FileVisitResult; |
31 | 32 | import java.nio.file.Files; |
| 33 | +import java.nio.file.Path; |
32 | 34 | import java.nio.file.Paths; |
| 35 | +import java.nio.file.SimpleFileVisitor; |
| 36 | +import java.nio.file.attribute.BasicFileAttributes; |
33 | 37 | import java.util.List; |
34 | 38 |
|
35 | 39 | import lombok.SneakyThrows; |
@@ -244,8 +248,40 @@ void testFetchFileContent() { |
244 | 248 |
|
245 | 249 | } |
246 | 250 |
|
| 251 | + @SneakyThrows |
247 | 252 | @Test |
248 | 253 | void testListStorageEntity_directoryNotEmpty() { |
| 254 | + Path tenantBasePath = Paths.get(TENANT_BASE_DIR); |
| 255 | + if (Files.exists(tenantBasePath)) { |
| 256 | + Files.walkFileTree(tenantBasePath, new SimpleFileVisitor<Path>() { |
| 257 | + |
| 258 | + @Override |
| 259 | + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { |
| 260 | + try { |
| 261 | + Files.delete(file); |
| 262 | + } catch (Exception e) { |
| 263 | + throw new RuntimeException(e); |
| 264 | + } |
| 265 | + return FileVisitResult.CONTINUE; |
| 266 | + } |
| 267 | + |
| 268 | + public FileVisitResult postVisitDirectory(Path dir, Exception exc) { |
| 269 | + try { |
| 270 | + Files.delete(dir); |
| 271 | + } catch (Exception e) { |
| 272 | + throw new RuntimeException(e); |
| 273 | + } |
| 274 | + return FileVisitResult.CONTINUE; |
| 275 | + } |
| 276 | + }); |
| 277 | + } |
| 278 | + |
| 279 | + // 重新创建当前测试所需的干净目录结构 |
| 280 | + Files.createDirectories(tenantBasePath); |
| 281 | + Files.createDirectories(tenantBasePath.resolve("emptyDirectory")); |
| 282 | + Files.createDirectories(tenantBasePath.resolve("sqlDirectory")); |
| 283 | + |
| 284 | + // 原测试逻辑不变 |
249 | 285 | List<StorageEntity> storageEntities = storageOperator.listStorageEntity(TENANT_BASE_DIR); |
250 | 286 | assertThat(storageEntities.size()).isEqualTo(2); |
251 | 287 |
|
|
0 commit comments