--- /dev/null
+package de.todesbaum.jsite.application.validation;
+
+import org.junit.Test;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.emptyIterable;
+import static org.hamcrest.Matchers.equalTo;
+
+public class CheckReportTest {
+
+ @Test
+ public void newCheckReportIsEmpty() {
+ assertThat(new CheckReport(), emptyIterable());
+ }
+
+ @Test
+ public void newCheckReportSaysItsEmpty() {
+ assertThat(new CheckReport().isEmpty(), equalTo(true));
+ }
+
+ @Test
+ public void checkReportWithIssueAddedIsNotEmpty() {
+ CheckReport checkReport = new CheckReport();
+ checkReport.addIssue("error-key", true, "param1", "param2");
+ assertThat(checkReport.isEmpty(), equalTo(false));
+ }
+
+ @Test
+ public void checkReportWithIssuesAddedReturnsIssues() {
+ CheckReport checkReport = new CheckReport();
+ checkReport.addIssue("error-1", true, "param1", "param2");
+ checkReport.addIssue("error-2", false, "param3", "param4");
+ assertThat(checkReport.getIssues(), contains(
+ new Issue("error-1", true, "param1", "param2"),
+ new Issue("error-2", false, "param3", "param4")
+ ));
+ }
+
+ @Test
+ public void checkReportWithIssuesAddedCanBeIteratedOver() {
+ CheckReport checkReport = new CheckReport();
+ checkReport.addIssue("error-1", true, "param1", "param2");
+ checkReport.addIssue("error-2", false, "param3", "param4");
+ assertThat(checkReport, contains(
+ new Issue("error-1", true, "param1", "param2"),
+ new Issue("error-2", false, "param3", "param4")
+ ));
+ }
+
+}