Skip to content

Commit

Permalink
Update spec version tests (#614)
Browse files Browse the repository at this point in the history
Co-authored-by: S. Tuncer Erdogan <tuncer [at] gmail.com>
  • Loading branch information
tuncererdogan committed Oct 16, 2022
1 parent f69ea6c commit 4992d7d
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 14 deletions.
13 changes: 11 additions & 2 deletions src/test/java/com/networknt/schema/SpecVersionDetectorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,16 @@ public void detectV201909() throws IOException {
}

@Test
public void detectUnsupportedSchemaVersion() throws IOException {
public void detectV202012() throws IOException {
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("draft2020-12/" + SCHEMA_TAG_JSON);
JsonNode node = mapper.readTree(in);
SpecVersion.VersionFlag flag = SpecVersionDetector.detect(node);
assertEquals(SpecVersion.VersionFlag.V202012, flag);
}

@Test
public void detectUnsupportedSchemaVersion() {
assertThrows(JsonSchemaException.class, () -> {
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("data/" + SCHEMA_TAG_JSON);
Expand All @@ -63,7 +72,7 @@ public void detectUnsupportedSchemaVersion() throws IOException {
}

@Test
public void detectMissingSchemaVersion() throws IOException {
public void detectMissingSchemaVersion() {
assertThrows(JsonSchemaException.class, () -> {
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("data/" + "schemaTagMissing.json");
Expand Down
24 changes: 12 additions & 12 deletions src/test/java/com/networknt/schema/SpecVersionTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.Arrays;
import java.util.EnumSet;
import java.util.Set;

public class SpecVersionTest {
@Test
public void testGetVersionValue() {
SpecVersion ds = new SpecVersion();
Set versionFlags = EnumSet.of(
Set<SpecVersion.VersionFlag> versionFlags = EnumSet.of(
SpecVersion.VersionFlag.V4,
SpecVersion.VersionFlag.V201909);
Assertions.assertEquals(ds.getVersionValue(versionFlags), 9); // 0001|1000
Expand All @@ -35,27 +36,26 @@ public void testGetVersionValue() {
public void testGetVersionFlags() {
SpecVersion ds = new SpecVersion();

long numericVersionCode = SpecVersion.VersionFlag.V201909.getVersionFlagValue()
long numericVersionCode = SpecVersion.VersionFlag.V202012.getVersionFlagValue()
| SpecVersion.VersionFlag.V201909.getVersionFlagValue()
| SpecVersion.VersionFlag.V6.getVersionFlagValue()
| SpecVersion.VersionFlag.V7.getVersionFlagValue(); // 14
| SpecVersion.VersionFlag.V7.getVersionFlagValue(); // 30

Set versionFlags = ds.getVersionFlags(numericVersionCode);
Set<SpecVersion.VersionFlag> versionFlags = ds.getVersionFlags(numericVersionCode);

assert !versionFlags.contains(SpecVersion.VersionFlag.V4);
assert versionFlags.contains(SpecVersion.VersionFlag.V6);
assert versionFlags.contains(SpecVersion.VersionFlag.V7);
assert versionFlags.contains(SpecVersion.VersionFlag.V201909);

assert versionFlags.contains(SpecVersion.VersionFlag.V202012);
}

@Test
public void testAllVersionValue() {
long numericVersionCode =
SpecVersion.VersionFlag.V201909.getVersionFlagValue()
| SpecVersion.VersionFlag.V4.getVersionFlagValue()
| SpecVersion.VersionFlag.V6.getVersionFlagValue()
| SpecVersion.VersionFlag.V7.getVersionFlagValue(); // 15
Assertions.assertEquals(numericVersionCode, 15);

long numericVersionCode = Arrays.stream(SpecVersion.VersionFlag.values())
.map(SpecVersion.VersionFlag::getVersionFlagValue)
.reduce((a, b) -> a | b)
.orElse(0L);
Assertions.assertEquals(numericVersionCode, 31);
}
}
3 changes: 3 additions & 0 deletions src/test/resources/draft2020-12/schemaTag.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema"
}

0 comments on commit 4992d7d

Please sign in to comment.