Skip to content

Commit 772a0d2

Browse files
committed
Add actual detail provider for assertion
1 parent b90b8bd commit 772a0d2

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.relogiclabs.json.schema.internal.message;
2+
3+
import com.relogiclabs.json.schema.message.ActualDetail;
4+
import com.relogiclabs.json.schema.types.JArray;
5+
import com.relogiclabs.json.schema.types.JNode;
6+
import com.relogiclabs.json.schema.types.JProperty;
7+
8+
import static com.relogiclabs.json.schema.internal.message.MessageHelper.getTypeName;
9+
import static com.relogiclabs.json.schema.internal.util.StringHelper.quote;
10+
11+
public class ActualHelper {
12+
13+
private ActualHelper() {
14+
throw new UnsupportedOperationException();
15+
}
16+
17+
public static ActualDetail asArrayElementNotFound(JArray array, int index) {
18+
return new ActualDetail(array, "not found");
19+
}
20+
21+
public static ActualDetail asValueMismatch(JNode node) {
22+
return new ActualDetail(node, "found ", node.getOutline());
23+
}
24+
25+
public static ActualDetail asInvalidDataType(JNode node) {
26+
return new ActualDetail(node, "applied on non-composite type ",
27+
getTypeName(node));
28+
}
29+
30+
public static ActualDetail asDataTypeMismatch(JNode node) {
31+
return new ActualDetail(node, "found ", getTypeName(node),
32+
" inferred by ", node.getOutline());
33+
}
34+
35+
public static ActualDetail asPropertyNotFound(JNode node, JProperty property) {
36+
return new ActualDetail(node, "not found property key ", quote(property.getKey()));
37+
}
38+
39+
public static ActualDetail asUndefinedProperty(JProperty property) {
40+
return new ActualDetail(property, "property found {", property.getOutline(), "}");
41+
}
42+
43+
public static ActualDetail asPropertyOrderMismatch(JNode node) {
44+
return node instanceof JProperty property
45+
? new ActualDetail(property, "key ", quote(property.getKey()), " is found at position")
46+
: new ActualDetail(node, "key not found at position");
47+
}
48+
49+
public static ActualDetail asInvalidFunction(JNode node) {
50+
return new ActualDetail(node, "applied on non-composite type ", getTypeName(node));
51+
}
52+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.relogiclabs.json.schema.message;
2+
3+
import com.relogiclabs.json.schema.tree.Context;
4+
import com.relogiclabs.json.schema.types.JNode;
5+
6+
import static com.relogiclabs.json.schema.internal.util.StringHelper.concat;
7+
8+
public class ActualDetail extends ContextDetail {
9+
public ActualDetail(Context context, String message) {
10+
super(context, message);
11+
}
12+
13+
public ActualDetail(JNode node, String message) {
14+
super(node, message);
15+
}
16+
17+
public ActualDetail(JNode node, Object m1, Object m2) {
18+
this(node, concat(m1, m2));
19+
}
20+
21+
public ActualDetail(JNode node, Object m1, Object m2, Object m3) {
22+
this(node, concat(m1, m2, m3));
23+
}
24+
25+
public ActualDetail(JNode node, Object m1, Object m2, Object m3, Object m4) {
26+
this(node, concat(m1, m2, m3, m4));
27+
}
28+
29+
public ActualDetail(JNode node, Object m1, Object m2, Object m3, Object m4, Object m5) {
30+
this(node, concat(m1, m2, m3, m4, m5));
31+
}
32+
}

0 commit comments

Comments
 (0)