1 package liquibase.resource; 2 3 import static org.junit.Assert.*; 4 import org.junit.Before; 5 import org.junit.Test; 6 7 import java.io.File; 8 import java.io.IOException; 9 import java.net.URI; 10 import java.net.URISyntaxException; 11 import java.net.URL; 12 import java.util.Enumeration; 13 14 15 public class FileSystemFileOpenerTest { 16 FileSystemResourceAccessor opener; 17 18 @Before 19 public void createFileOpener() throws URISyntaxException { 20 File thisClassFile = new File(new URI(this.getClass().getClassLoader().getResource("liquibase/resource/FileSystemResourceAccessor.class").toExternalForm())); 21 String packageDirectory = thisClassFile.getParent(); 22 23 24 opener = new FileSystemResourceAccessor(packageDirectory); 25 } 26 27 @Test(expected = IllegalArgumentException.class) 28 public void onlyAcceptsDirectories() throws URISyntaxException { 29 File thisClassFile = new File(new URI(this.getClass().getClassLoader().getResource("liquibase/resource/FileSystemResourceAccessor.class").toExternalForm())); 30 31 ResourceAccessor o = new FileSystemResourceAccessor(thisClassFile.getAbsolutePath()); 32 } 33 34 @Test 35 public void singleFileTest() throws IOException { 36 assertNotNull(opener.getResourceAsStream("FileSystemResourceAccessor.class")); 37 } 38 39 @Test 40 public void multipleFileTest() throws IOException { 41 Enumeration<URL> files = opener.getResources("."); 42 boolean found = false; 43 while(files.hasMoreElements()) { 44 URL u = files.nextElement(); 45 found |=u.getFile().lastIndexOf("FileSystemResourceAccessor")>-1; 46 } 47 assertTrue(found); 48 } 49 50 @Test 51 public void ahphabeticalOrderTest() throws IOException { 52 Enumeration<URL> files = opener.getResources("."); 53 boolean correct = false; 54 String lastFile = null; 55 while(files.hasMoreElements()) { 56 URL u = files.nextElement(); 57 String currentFile = u.getFile().substring(u.getFile().lastIndexOf("/") + 1); 58 if (lastFile != null) { 59 correct |= lastFile.compareTo(currentFile) < 0; 60 } 61 lastFile = currentFile; 62 } 63 64 assertTrue(correct); 65 } 66 }