View Javadoc

1   package searls.jasmine.io;
2   
3   import static org.hamcrest.Matchers.*;
4   import static org.junit.Assert.*;
5   import static org.powermock.api.mockito.PowerMockito.*;
6   
7   import java.io.File;
8   import java.io.IOException;
9   import java.util.ArrayList;
10  import java.util.Collection;
11  
12  import org.apache.commons.io.FileUtils;
13  import org.junit.Before;
14  import org.junit.Test;
15  import org.junit.runner.RunWith;
16  import org.powermock.core.classloader.annotations.PrepareForTest;
17  import org.powermock.modules.junit4.PowerMockRunner;
18  
19  import searls.jasmine.io.FileUtilsWrapper;
20  
21  @RunWith(PowerMockRunner.class)
22  @PrepareForTest(FileUtils.class)
23  public class FileUtilsWrapperTest {
24  
25  	private FileUtilsWrapper sut = new FileUtilsWrapper();
26  	private File file = mock(File.class);
27  
28  	@Before
29  	public void powerfullyMockStaticClasses() {
30  		mockStatic(FileUtils.class);
31  	}
32  
33  	@Test
34  	public void delegatesReadingFilesToFileUtils() throws IOException {
35  		String expected = "contents";
36  		when(FileUtils.readFileToString(file)).thenReturn(expected);
37  
38  		String result = sut.readFileToString(file);
39  
40  		assertThat(result,is(expected));
41  	}
42  	
43  	@Test
44  	public void delegatesForcingMkdirToFileUtils() throws IOException {
45  		sut.forceMkdir(file);
46  
47  		verifyStatic();
48  		FileUtils.forceMkdir(file);
49  	}	
50  	
51  	@Test
52  	public void listFilesDelegatesToFileUtils() {
53  		Collection<File> expected = new ArrayList<File>();
54  		String[] extensions = new String[] {"js"};
55  		boolean recursive = true;
56  		when(FileUtils.listFiles(file, extensions, recursive)).thenReturn(expected);
57  		
58  		Collection<File> files = sut.listFiles(file,extensions,recursive);
59  		
60  		assertThat(files,is(sameInstance(expected)));
61  	}
62  }