Skip to content

Commit 67fcdb3

Browse files
committed
implemented json-pointer format (test added)
1 parent 2427bfc commit 67fcdb3

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

core/src/main/java/org/everit/json/schema/internal/JsonPointerFormatValidator.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
package org.everit.json.schema.internal;
22

3+
import static java.lang.String.format;
4+
35
import java.util.Optional;
46

57
import org.everit.json.schema.FormatValidator;
8+
import org.json.JSONPointer;
69

710
public class JsonPointerFormatValidator implements FormatValidator {
811

912
@Override public Optional<String> validate(String subject) {
10-
throw new UnsupportedOperationException("not yet implemented");
13+
try {
14+
new JSONPointer(subject);
15+
return Optional.empty();
16+
} catch (IllegalArgumentException e) {
17+
return Optional.of(format("[%s] is not a valid JSON pointer", subject));
18+
}
1119
}
1220

1321
@Override public String formatName() {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.everit.json.schema.internal;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.assertSame;
5+
6+
import java.util.Optional;
7+
8+
import org.junit.Test;
9+
10+
public class JsonPointerFormatValidatorTest {
11+
12+
private final JsonPointerFormatValidator subject = new JsonPointerFormatValidator();
13+
14+
@Test
15+
public void uriSuccess() {
16+
assertEmpty(subject.validate("#/hello"));
17+
}
18+
19+
private void assertEmpty(Optional<String> actual) {
20+
assertSame(Optional.empty(), actual);
21+
}
22+
23+
@Test
24+
public void stringSuccess() {
25+
assertEmpty(subject.validate("/hello"));
26+
}
27+
28+
@Test
29+
public void illegalLeadingCharFailure() {
30+
assertEquals(Optional.of("[aaa] is not a valid JSON pointer"), subject.validate("aaa"));
31+
}
32+
33+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.everit.json.schema.internal;
2+
3+
import org.junit.Test;
4+
5+
public class URIReferenceFormatValidatorTest {
6+
7+
private final URIReferenceFormatValidator subject = new URIReferenceFormatValidator();
8+
9+
@Test
10+
public void success() {
11+
12+
}
13+
}

0 commit comments

Comments
 (0)