From 8e9b332422a929b1b3be73167e28006889b75afc Mon Sep 17 00:00:00 2001 From: guicamest Date: Thu, 28 Sep 2023 14:56:37 +0200 Subject: [PATCH] feat: Implement `S3FileSystemProvider.getFileStore` (#757) * feat(fsprovider): Tests for getFileStore should return the FileStore * feat(fsprovider): getFileStore should return the FileStore --- .../cloud/storage/s3fs/S3FileSystemProvider.java | 2 +- .../org/carlspring/cloud/storage/s3fs/FilesIT.java | 11 +++++++++++ .../s3fs/fileSystemProvider/GetFileStoreTest.java | 14 +++++++------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/carlspring/cloud/storage/s3fs/S3FileSystemProvider.java b/src/main/java/org/carlspring/cloud/storage/s3fs/S3FileSystemProvider.java index 03d3a135..35655519 100644 --- a/src/main/java/org/carlspring/cloud/storage/s3fs/S3FileSystemProvider.java +++ b/src/main/java/org/carlspring/cloud/storage/s3fs/S3FileSystemProvider.java @@ -933,7 +933,7 @@ public boolean isHidden(Path path) @Override public FileStore getFileStore(Path path) { - throw new UnsupportedOperationException(); + return toS3Path(path).getFileStore(); } @Override diff --git a/src/test/java/org/carlspring/cloud/storage/s3fs/FilesIT.java b/src/test/java/org/carlspring/cloud/storage/s3fs/FilesIT.java index 38debee2..ff98f17b 100644 --- a/src/test/java/org/carlspring/cloud/storage/s3fs/FilesIT.java +++ b/src/test/java/org/carlspring/cloud/storage/s3fs/FilesIT.java @@ -73,6 +73,17 @@ private static FileSystem createNewFileSystem() return FileSystems.newFileSystem(uriGlobal, env); } + @Test + void fileStore() + throws IOException + { + Path dir = fileSystemAmazon.getPath(bucket); + + FileStore fileStore = Files.getFileStore(dir); + + assertInstanceOf(S3FileStore.class, fileStore); + } + @Test void notExistsDir() { diff --git a/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/GetFileStoreTest.java b/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/GetFileStoreTest.java index 3298b664..ab1ffe52 100644 --- a/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/GetFileStoreTest.java +++ b/src/test/java/org/carlspring/cloud/storage/s3fs/fileSystemProvider/GetFileStoreTest.java @@ -1,5 +1,6 @@ package org.carlspring.cloud.storage.s3fs.fileSystemProvider; +import org.carlspring.cloud.storage.s3fs.S3FileStore; import org.carlspring.cloud.storage.s3fs.S3FileSystem; import org.carlspring.cloud.storage.s3fs.S3UnitTestBase; import org.carlspring.cloud.storage.s3fs.util.S3ClientMock; @@ -7,14 +8,15 @@ import org.carlspring.cloud.storage.s3fs.util.S3MockFactory; import java.io.IOException; +import java.nio.file.FileStore; import java.nio.file.FileSystemNotFoundException; import java.nio.file.FileSystems; import java.nio.file.Path; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertThrows; + +import static org.junit.jupiter.api.Assertions.assertInstanceOf; class GetFileStoreTest extends S3UnitTestBase @@ -30,7 +32,7 @@ public void setup() } @Test - void getFileStore() + void shouldReturnS3FileStore() throws IOException { // fixtures @@ -40,10 +42,8 @@ void getFileStore() // act Path file1 = createNewS3FileSystem().getPath("/bucketA/dir/file1"); - // We're expecting an exception here to be thrown - Exception exception = assertThrows(UnsupportedOperationException.class, () -> s3fsProvider.getFileStore(file1)); - - assertNotNull(exception); + FileStore fileStore = s3fsProvider.getFileStore(file1); + assertInstanceOf(S3FileStore.class, fileStore); } /**