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 }