Add unit test for File path article - BAEL-827 (#1784)
* BAEL-827 Add unit test for file paths * BAEL-827 - Update path IOException test to execute only on Windows * BAELL-827 - Update unit test method name
This commit is contained in:
		
							parent
							
								
									dacc694f02
								
							
						
					
					
						commit
						3f22a70bb3
					
				| @ -0,0 +1,99 @@ | |||||||
|  | package org.baeldung.java.io; | ||||||
|  | 
 | ||||||
|  | import static org.junit.Assert.*; | ||||||
|  | 
 | ||||||
|  | import org.junit.AfterClass; | ||||||
|  | import org.junit.Assume; | ||||||
|  | import org.junit.BeforeClass; | ||||||
|  | import org.junit.Test; | ||||||
|  | 
 | ||||||
|  | import java.io.File; | ||||||
|  | import java.io.IOException; | ||||||
|  | 
 | ||||||
|  | public class JavaFilePathUnitTest { | ||||||
|  | 
 | ||||||
|  |     private static String userDir; | ||||||
|  | 
 | ||||||
|  |     @BeforeClass | ||||||
|  |     public static void createFilesAndFolders() throws IOException { | ||||||
|  |         userDir = System.getProperty("user.dir"); | ||||||
|  | 
 | ||||||
|  |         new File(userDir + "/baeldung/foo").mkdirs(); | ||||||
|  |         new File(userDir + "/baeldung/bar/baz").mkdirs(); | ||||||
|  |         new File(userDir + "/baeldung/foo/foo-one.txt").createNewFile(); | ||||||
|  |         new File(userDir + "/baeldung/foo/foo-two.txt").createNewFile(); | ||||||
|  |         new File(userDir + "/baeldung/bar/bar-one.txt").createNewFile(); | ||||||
|  |         new File(userDir + "/baeldung/bar/bar-two.txt").createNewFile(); | ||||||
|  |         new File(userDir + "/baeldung/bar/baz/baz-one.txt").createNewFile(); | ||||||
|  |         new File(userDir + "/baeldung/bar/baz/baz-two.txt").createNewFile(); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void whenPathResolved_thenSuccess() { | ||||||
|  |         File file = new File("baeldung/foo/foo-one.txt"); | ||||||
|  |         String expectedPath = isWindows() ? "baeldung\\foo\\foo-one.txt" : "baeldung/foo/foo-one.txt"; | ||||||
|  |         String actualPath = file.getPath(); | ||||||
|  |         assertEquals(expectedPath, actualPath); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void whenAbsolutePathResolved_thenSuccess() { | ||||||
|  |         File file = new File("baeldung/foo/foo-one.txt"); | ||||||
|  |         String expectedPath = isWindows() ? userDir + "\\baeldung\\foo\\foo-one.txt" : userDir + "/baeldung/foo/foo-one.txt"; | ||||||
|  |         String actualPath = file.getAbsolutePath(); | ||||||
|  |         assertEquals(expectedPath, actualPath); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void whenAbsolutePathWithShorthandResolved_thenSuccess() { | ||||||
|  |         File file = new File("baeldung/bar/baz/../bar-one.txt"); | ||||||
|  |         String expectedPath = isWindows() ? userDir + "\\baeldung\\bar\\baz\\..\\bar-one.txt" : userDir + "/baeldung/bar/baz/../bar-one.txt"; | ||||||
|  |         String actualPath = file.getAbsolutePath(); | ||||||
|  |         assertEquals(expectedPath, actualPath); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void whenCanonicalPathWithShorthandResolved_thenSuccess() throws IOException { | ||||||
|  |         File file = new File("baeldung/bar/baz/../bar-one.txt"); | ||||||
|  |         String expectedPath = isWindows() ? userDir + "\\baeldung\\bar\\bar-one.txt" : userDir + "/baeldung/bar/bar-one.txt"; | ||||||
|  |         String actualPath = file.getCanonicalPath(); | ||||||
|  |         assertEquals(expectedPath, actualPath); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void whenCanonicalPathWithDotShorthandResolved_thenSuccess() throws IOException { | ||||||
|  |         File file = new File("baeldung/bar/baz/./baz-one.txt"); | ||||||
|  |         String expectedPath = isWindows() ? userDir + "\\baeldung\\bar\\baz\\baz-one.txt" : userDir + "/baeldung/bar/baz/baz-one.txt"; | ||||||
|  |         String actualPath = file.getCanonicalPath(); | ||||||
|  |         assertEquals(expectedPath, actualPath); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test(expected = IOException.class) | ||||||
|  |     public void givenWindowsOs_whenCanonicalPathWithWildcard_thenIOException() throws IOException { | ||||||
|  |         Assume.assumeTrue(isWindows()); | ||||||
|  |         new File("*").getCanonicalPath(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @AfterClass | ||||||
|  |     public static void deleteFilesAndFolders() { | ||||||
|  |         File baeldungDir = new File(userDir + "/baeldung"); | ||||||
|  |         deleteRecursively(baeldungDir); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static void deleteRecursively(File dir) { | ||||||
|  |         for (File f : dir.listFiles()) { | ||||||
|  |             if (f.isDirectory()) { | ||||||
|  |                 deleteRecursively(f); | ||||||
|  |             } | ||||||
|  |             f.delete(); | ||||||
|  |         } | ||||||
|  |         dir.delete(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static boolean isWindows() { | ||||||
|  |         String osName = System.getProperty("os.name"); | ||||||
|  |         return osName.contains("Windows"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user