19
19
20
20
import java .util .List ;
21
21
22
+ import static org .hamcrest .CoreMatchers .containsString ;
23
+ import static org .junit .Assert .assertEquals ;
24
+ import static org .junit .Assert .assertThat ;
25
+
22
26
public class TestSupport {
23
27
24
28
public static class Failure {
@@ -33,6 +37,8 @@ public static class Failure {
33
37
34
38
private Object input ;
35
39
40
+ private String expectedMessageFragment ;
41
+
36
42
public Failure subject (final Schema subject ) {
37
43
this .subject = subject ;
38
44
return this ;
@@ -72,6 +78,10 @@ public String expectedKeyword() {
72
78
return expectedKeyword ;
73
79
}
74
80
81
+ public String expectedMessageFragment () {
82
+ return expectedMessageFragment ;
83
+ }
84
+
75
85
public Failure input (final Object input ) {
76
86
this .input = input ;
77
87
return this ;
@@ -84,6 +94,11 @@ public Object input() {
84
94
public void expect () {
85
95
expectFailure (this );
86
96
}
97
+
98
+ public Failure expectedMessageFragment (String expectedFragment ) {
99
+ this .expectedMessageFragment = expectedFragment ;
100
+ return this ;
101
+ }
87
102
}
88
103
89
104
public static Failure failureOf (final Schema subject ) {
@@ -138,9 +153,12 @@ public static void expectFailure(final Failure failure) {
138
153
Assert .fail (failure .subject () + " did not fail for " + failure .input ());
139
154
} catch (ValidationException e ) {
140
155
Assert .assertSame (failure .expectedViolatedSchema (), e .getViolatedSchema ());
141
- Assert . assertEquals (failure .expectedPointer (), e .getPointerToViolation ());
156
+ assertEquals (failure .expectedPointer (), e .getPointerToViolation ());
142
157
if (failure .expectedKeyword () != null ) {
143
- Assert .assertEquals (failure .expectedKeyword (), e .getKeyword ());
158
+ assertEquals (failure .expectedKeyword (), e .getKeyword ());
159
+ }
160
+ if (failure .expectedMessageFragment () != null ) {
161
+ assertThat (e .getMessage (), containsString (failure .expectedMessageFragment ()));
144
162
}
145
163
}
146
164
}
@@ -152,7 +170,7 @@ private static void test(final Schema failingSchema, final String expectedPointe
152
170
Assert .fail (failingSchema + " did not fail for " + input );
153
171
} catch (ValidationException e ) {
154
172
if (expectedPointer != null ) {
155
- Assert . assertEquals (expectedPointer , e .getPointerToViolation ());
173
+ assertEquals (expectedPointer , e .getPointerToViolation ());
156
174
}
157
175
throw e ;
158
176
}
0 commit comments