package liquibase.resource; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.util.Enumeration; public class FileSystemFileOpenerTest { FileSystemResourceAccessor opener; @Before public void createFileOpener() throws URISyntaxException { File thisClassFile = new File(new URI(this.getClass().getClassLoader().getResource("liquibase/resource/FileSystemResourceAccessor.class").toExternalForm())); String packageDirectory = thisClassFile.getParent(); opener = new FileSystemResourceAccessor(packageDirectory); } @Test(expected = IllegalArgumentException.class) public void onlyAcceptsDirectories() throws URISyntaxException { File thisClassFile = new File(new URI(this.getClass().getClassLoader().getResource("liquibase/resource/FileSystemResourceAccessor.class").toExternalForm())); ResourceAccessor o = new FileSystemResourceAccessor(thisClassFile.getAbsolutePath()); } @Test public void singleFileTest() throws IOException { assertNotNull(opener.getResourceAsStream("FileSystemResourceAccessor.class")); } @Test public void multipleFileTest() throws IOException { Enumeration<URL> files = opener.getResources("."); boolean found = false; while(files.hasMoreElements()) { URL u = files.nextElement(); found |=u.getFile().lastIndexOf("FileSystemResourceAccessor")>-1; } assertTrue(found); } @Test public void ahphabeticalOrderTest() throws IOException { Enumeration<URL> files = opener.getResources("."); boolean correct = false; String lastFile = null; while(files.hasMoreElements()) { URL u = files.nextElement(); String currentFile = u.getFile().substring(u.getFile().lastIndexOf("/") + 1); if (lastFile != null) { correct |= lastFile.compareTo(currentFile) < 0; } lastFile = currentFile; } assertTrue(correct); } }