Skip to content

Commit 8948d14

Browse files
committed
migrated CombinedSchema to new ViolationException constructor
1 parent c17db30 commit 8948d14

File tree

2 files changed

+47
-52
lines changed

2 files changed

+47
-52
lines changed

core/src/main/java/org/everit/json/schema/CombinedSchema.java

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ public static class Builder extends Schema.Builder<CombinedSchema> {
3333

3434
private Collection<Schema> subschemas = new ArrayList<>();
3535

36+
@Override
37+
public CombinedSchema build() {
38+
return new CombinedSchema(this);
39+
}
40+
3641
public Builder criterion(final ValidationCriterion criterion) {
3742
this.criterion = criterion;
3843
return this;
@@ -48,19 +53,6 @@ public Builder subschemas(final Collection<Schema> subschemas) {
4853
return this;
4954
}
5055

51-
@Override
52-
public CombinedSchema build() {
53-
return new CombinedSchema(this);
54-
}
55-
56-
}
57-
58-
public static Builder builder() {
59-
return new Builder();
60-
}
61-
62-
public static Builder builder(final Collection<Schema> subschemas) {
63-
return new Builder().subschemas(subschemas);
6456
}
6557

6658
/**
@@ -122,6 +114,14 @@ public static Builder anyOf(final Collection<Schema> schemas) {
122114
return builder(schemas).criterion(ANY_CRITERION);
123115
}
124116

117+
public static Builder builder() {
118+
return new Builder();
119+
}
120+
121+
public static Builder builder(final Collection<Schema> subschemas) {
122+
return new Builder().subschemas(subschemas);
123+
}
124+
125125
public static Builder oneOf(final Collection<Schema> schemas) {
126126
return builder(schemas).criterion(ONE_CRITERION);
127127
}
@@ -164,7 +164,11 @@ public void validate(final Object subject) {
164164
int matchingCount = (int) subschemas.stream()
165165
.filter(schema -> succeeds(schema, subject))
166166
.count();
167-
criterion.validate(subschemas.size(), matchingCount);
167+
try {
168+
criterion.validate(subschemas.size(), matchingCount);
169+
} catch (ValidationException e) {
170+
throw new ValidationException(this, e.getMessage());
171+
}
168172
}
169173

170174
}

core/src/test/java/org/everit/json/schema/CombinedSchemaTest.java

Lines changed: 29 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,18 @@
1818
import java.util.Arrays;
1919
import java.util.List;
2020

21-
import org.everit.json.schema.BooleanSchema;
22-
import org.everit.json.schema.CombinedSchema;
23-
import org.everit.json.schema.NumberSchema;
24-
import org.everit.json.schema.Schema;
25-
import org.everit.json.schema.StringSchema;
26-
import org.everit.json.schema.ValidationException;
2721
import org.junit.Test;
2822

2923
public class CombinedSchemaTest {
3024

31-
@Test
32-
public void factories() {
33-
CombinedSchema.allOf(Arrays.asList(BooleanSchema.INSTANCE));
34-
CombinedSchema.anyOf(Arrays.asList(BooleanSchema.INSTANCE));
35-
CombinedSchema.oneOf(Arrays.asList(BooleanSchema.INSTANCE));
25+
private static final List<Schema> SUBSCHEMAS = Arrays.asList(
26+
NumberSchema.builder().multipleOf(10).build(),
27+
NumberSchema.builder().multipleOf(3).build()
28+
);
29+
30+
@Test(expected = ValidationException.class)
31+
public void allCriterionFailure() {
32+
CombinedSchema.ALL_CRITERION.validate(10, 1);
3633
}
3734

3835
@Test
@@ -41,8 +38,8 @@ public void allCriterionSuccess() {
4138
}
4239

4340
@Test(expected = ValidationException.class)
44-
public void allCriterionFailure() {
45-
CombinedSchema.ALL_CRITERION.validate(10, 1);
41+
public void anyCriterionFailure() {
42+
CombinedSchema.ANY_CRITERION.validate(10, 0);
4643
}
4744

4845
@Test
@@ -51,49 +48,43 @@ public void anyCriterionSuccess() {
5148
}
5249

5350
@Test(expected = ValidationException.class)
54-
public void anyCriterionFailure() {
55-
CombinedSchema.ANY_CRITERION.validate(10, 0);
51+
public void anyOfInvalid() {
52+
CombinedSchema.anyOf(Arrays.asList(
53+
StringSchema.builder().maxLength(2).build(),
54+
StringSchema.builder().minLength(4).build()))
55+
.build().validate("foo");
5656
}
5757

5858
@Test
59-
public void oneCriterionSuccess() {
60-
CombinedSchema.ONE_CRITERION.validate(10, 1);
59+
public void factories() {
60+
CombinedSchema.allOf(Arrays.asList(BooleanSchema.INSTANCE));
61+
CombinedSchema.anyOf(Arrays.asList(BooleanSchema.INSTANCE));
62+
CombinedSchema.oneOf(Arrays.asList(BooleanSchema.INSTANCE));
6163
}
6264

6365
@Test(expected = ValidationException.class)
6466
public void oneCriterionFailure() {
6567
CombinedSchema.ONE_CRITERION.validate(10, 2);
6668
}
6769

68-
private static final List<Schema> SUBSCHEMAS = Arrays.asList(
69-
NumberSchema.builder().multipleOf(10).build(),
70-
NumberSchema.builder().multipleOf(3).build()
71-
);
70+
@Test
71+
public void oneCriterionSuccess() {
72+
CombinedSchema.ONE_CRITERION.validate(10, 1);
73+
}
7274

73-
@Test(expected = ValidationException.class)
75+
@Test
7476
public void validateAll() {
75-
CombinedSchema.allOf(SUBSCHEMAS).build()
76-
.validate(20);
77+
TestSupport.exceptFailure(CombinedSchema.allOf(SUBSCHEMAS).build(), 20);
7778
}
7879

79-
@Test(expected = ValidationException.class)
80+
@Test
8081
public void validateAny() {
81-
CombinedSchema.anyOf(SUBSCHEMAS).build()
82-
.validate(5);
82+
TestSupport.exceptFailure(CombinedSchema.anyOf(SUBSCHEMAS).build(), 5);
8383
}
8484

85-
@Test(expected = ValidationException.class)
85+
@Test
8686
public void validateOne() {
87-
CombinedSchema.oneOf(SUBSCHEMAS).build()
88-
.validate(30);
89-
}
90-
91-
@Test(expected = ValidationException.class)
92-
public void anyOfInvalid() {
93-
CombinedSchema.anyOf(Arrays.asList(
94-
StringSchema.builder().maxLength(2).build(),
95-
StringSchema.builder().minLength(4).build()))
96-
.build().validate("foo");
87+
TestSupport.exceptFailure(CombinedSchema.oneOf(SUBSCHEMAS).build(), 30);
9788
}
9889

9990
}

0 commit comments

Comments
 (0)