1 package org.apache.maven.surefire.its.fixture;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.BufferedReader;
23 import java.io.File;
24 import java.io.FileInputStream;
25 import java.io.FileNotFoundException;
26 import java.io.FileReader;
27 import java.io.IOException;
28 import java.net.URI;
29 import java.nio.charset.Charset;
30 import java.util.List;
31 import org.apache.commons.io.FileUtils;
32
33 import junit.framework.Assert;
34
35 import static junit.framework.Assert.assertTrue;
36
37
38
39
40 public class TestFile
41 {
42
43 private final File file;
44
45 private final Charset encoding;
46
47 private final OutputValidator surefireVerifier;
48
49 public TestFile( File file, OutputValidator surefireVerifier )
50 {
51 this( file, Charset.defaultCharset(), surefireVerifier);
52 }
53
54 public TestFile( File file, Charset charset, OutputValidator surefireVerifier )
55 {
56 this.file = file;
57 this.encoding = charset;
58 this.surefireVerifier = surefireVerifier;
59 }
60
61 public OutputValidator assertFileExists()
62 {
63 assertTrue( "File doesn't exist: " + file.getAbsolutePath(), file.exists() );
64 return surefireVerifier;
65 }
66
67 public OutputValidator assertFileNotExists()
68 {
69 assertTrue( "File doesn't exist: " + file.getAbsolutePath(), !file.exists() );
70 return surefireVerifier;
71 }
72
73 public void delete()
74 {
75
76 file.delete();
77 }
78
79 public String getAbsolutePath()
80 {
81 return file.getAbsolutePath();
82 }
83
84 public boolean exists()
85 {
86 return file.exists();
87 }
88
89 public FileInputStream getFileInputStream()
90 throws FileNotFoundException
91 {
92 return new FileInputStream( file );
93 }
94
95 public String slurpFile()
96 {
97 try
98 {
99 StringBuilder sb = new StringBuilder();
100 BufferedReader reader;
101 reader = new BufferedReader( new FileReader( file ) );
102 for ( String line = reader.readLine(); line != null; line = reader.readLine() )
103 {
104 sb.append( line );
105 }
106 reader.close();
107 return sb.toString();
108 }
109 catch ( IOException e )
110 {
111 throw new SurefireVerifierException( e );
112 }
113
114 }
115
116 public String readFileToString()
117 {
118 try
119 {
120 return FileUtils.readFileToString( file );
121 }
122 catch ( IOException e )
123 {
124 throw new SurefireVerifierException( e );
125 }
126 }
127
128 public boolean isFile()
129 {
130 return file.isFile();
131 }
132
133 public TestFile assertContainsText( String text )
134 {
135 final List<String> list = surefireVerifier.loadFile( file, encoding );
136 for ( String line : list )
137 {
138 if ( line.contains( text ) )
139 {
140 return this;
141 }
142 }
143 Assert.fail( "Did not find expected message in log" );
144 return null;
145 }
146
147 public URI toURI()
148 {
149 return file.toURI();
150 }
151 }