1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.creadur.whisker.it;
20
21 import static org.apache.creadur.whisker.it.CheckHelpers.*;
22
23 import java.io.*;
24 import java.nio.charset.StandardCharsets;
25 import java.util.ArrayList;
26 import java.util.List;
27
28 public class FileVerifier {
29
30 final File licenseFile;
31 final List<Check> checks;
32 final String title;
33
34
35 public FileVerifier(final File licenseFile, final String displayName) {
36 this.licenseFile = licenseFile;
37 this.checks = new ArrayList<Check>();
38 this.title = "FAILURES in " + displayName + ":";
39 }
40
41 public FileVerifier expectThat(final Check check) {
42 this.checks.add(check);
43 return this;
44 }
45
46 public String failures() throws Exception {
47 BufferedReader reader = new BufferedReader(new InputStreamReader(
48 new FileInputStream(licenseFile), StandardCharsets.UTF_8));
49 try {
50 String line = null;
51 do {
52 line = checkLine(reader.readLine());
53 } while (line != null);
54 } finally {
55 reader.close();
56 }
57
58 final Results results = new Results().titled(title);
59 return to(results).report(checks).collate();
60 }
61
62 private String checkLine(final String line) {
63 doCheck(line).with(checks);
64 return line;
65 }
66 }