Skip to content

Commit 2f5d63a

Browse files
committed
Make test to reproduce issue #102
Signed-off-by: Francis Galiegue <[email protected]>
1 parent de19878 commit 2f5d63a

File tree

2 files changed

+49
-2
lines changed

2 files changed

+49
-2
lines changed

src/test/java/com/github/fge/jsonschema/processors/validation/ValidationProcessorTest.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
2525
import com.fasterxml.jackson.databind.node.ObjectNode;
2626
import com.github.fge.jackson.JacksonUtils;
27+
import com.github.fge.jackson.JsonLoader;
2728
import com.github.fge.jackson.NodeType;
2829
import com.github.fge.jsonschema.cfg.ValidationConfiguration;
2930
import com.github.fge.jsonschema.core.exceptions.ProcessingException;
@@ -39,15 +40,18 @@
3940
import com.github.fge.jsonschema.library.Keyword;
4041
import com.github.fge.jsonschema.library.Library;
4142
import com.github.fge.jsonschema.main.JsonSchemaFactory;
43+
import com.github.fge.jsonschema.main.JsonValidator;
4244
import com.github.fge.jsonschema.processors.data.FullData;
4345
import com.github.fge.msgsimple.bundle.MessageBundle;
4446
import org.testng.annotations.BeforeMethod;
4547
import org.testng.annotations.Test;
4648

49+
import java.io.IOException;
4750
import java.util.concurrent.atomic.AtomicInteger;
4851

49-
import static org.mockito.Mockito.*;
50-
import static org.testng.Assert.*;
52+
import static org.mockito.Mockito.mock;
53+
import static org.testng.Assert.assertEquals;
54+
import static org.testng.Assert.assertTrue;
5155

5256
public final class ValidationProcessorTest
5357
{
@@ -111,6 +115,19 @@ public void childrenAreExploredOnDemandEvenIfContainerFails()
111115
assertEquals(COUNT.get(), 1);
112116
}
113117

118+
@Test(timeOut = 1000)
119+
public void circularReferencingDuringValidationIsDetected()
120+
throws IOException, ProcessingException
121+
{
122+
final JsonNode schemaNode
123+
= JsonLoader.fromResource("/other/issue102.json");
124+
final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
125+
final JsonValidator validator = factory.getValidator();
126+
127+
validator.validate(schemaNode, JacksonUtils.nodeFactory().nullNode());
128+
assertTrue(true);
129+
}
130+
114131
public static final class K1Validator
115132
extends AbstractKeywordValidator
116133
{
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"definitions": {
4+
"S": {
5+
"allOf": [
6+
{
7+
"type": "string",
8+
"enum": ["a"]
9+
},
10+
{
11+
"oneOf": [
12+
{
13+
"$ref": "#/definitions/S"
14+
},
15+
{
16+
"type": "string",
17+
"enum": [""]
18+
}
19+
]
20+
},
21+
{
22+
"type": "string",
23+
"enum": ["b"]
24+
}
25+
],
26+
"additionalItems": false
27+
}
28+
},
29+
"$ref": "#/definitions/S"
30+
}

0 commit comments

Comments
 (0)