package com.beijunyi.parallelgit.filesystem; import java.io.IOException; import java.nio.file.Files; import java.nio.file.NoSuchFileException; import java.util.Map; import com.beijunyi.parallelgit.filesystem.io.GfsFileAttributes; import org.junit.Test; import static org.junit.Assert.assertTrue; public class FilesReadAttributesTest extends PreSetupGitFileSystemTest { @Test public void readBasicAttributes_theResultShouldContainSpecifiedAttributes() throws IOException { writeToGfs("/file.txt"); Map<String, Object> attributeMap = Files.readAttributes(gfs.getPath("/file.txt"), "basic:size,isRegularFile"); assertTrue(attributeMap.containsKey("size")); assertTrue(attributeMap.containsKey("isRegularFile")); } @Test public void readBasicAttributesWithoutViewType_theResultShouldContainSpecifiedAttributes() throws IOException { writeToGfs("/file.txt"); Map<String, Object> attributeMap = Files.readAttributes(gfs.getPath("/file.txt"), "size,isRegularFile"); assertTrue(attributeMap.containsKey("size")); assertTrue(attributeMap.containsKey("isRegularFile")); } @Test public void readPosixAttributes_theResultShouldContainSpecifiedAttributes() throws IOException { writeToGfs("/file.txt"); Map<String, Object> attributeMap = Files.readAttributes(gfs.getPath("/file.txt"), "posix:permissions,owner"); assertTrue(attributeMap.containsKey("permissions")); assertTrue(attributeMap.containsKey("owner")); } @Test(expected = NoSuchFileException.class) public void readAttributesFromNonExistentFile_shouldThrowNoSuchFileException1() throws IOException { provider.readAttributes(gfs.getPath("/non_existent_file.txt"), GfsFileAttributes.Basic.class); } @Test(expected = NoSuchFileException.class) public void readAttributesFromNonExistentFile_shouldThrowNoSuchFileException2() throws IOException { provider.readAttributes(gfs.getPath("/non_existent_file.txt"), "basic:size,isRegularFile"); } @Test(expected = UnsupportedOperationException.class) public void readUnsupportedFileAttributes_shouldThrowUnsupportedOperationException2() throws IOException { writeToGfs("/file.txt"); Files.readAttributes(gfs.getPath("/file.txt"), "some_view:some_attribute"); } }