checker.checkSyntax(pointers, bundle, report, tree);
checker.checkSyntax(pointers, bundle, report, tree);
checker.checkSyntax(pointers, bundle, report, tree);
@Test( dependsOnMethods = "keywordIsSupportedInThisDictionary", dataProvider = "getPointerTests" ) public final void pointerDelegationWorksCorrectly(final JsonNode schema, final ArrayNode expectedPointers) throws ProcessingException, JsonPointerException { final SchemaTree tree = new CanonicalSchemaTree(SchemaKey.anonymousKey(), schema); checker.checkSyntax(pointers, BUNDLE, report, tree); final List<JsonPointer> expected = Lists.newArrayList(); for (final JsonNode node: expectedPointers) expected.add(new JsonPointer(node.textValue())); assertEquals(pointers, expected); }
@Test public void checkingWillNotDiveIntoUnknownKeywords() throws ProcessingException { final ObjectNode node = FACTORY.objectNode(); node.put(K1, K1); final ObjectNode schema = FACTORY.objectNode(); schema.put("foo", node); final SchemaTree tree = new CanonicalSchemaTree(SchemaKey.anonymousKey(), schema); final ValueHolder<SchemaTree> holder = ValueHolder.hold("schema", tree); processor.process(report, holder); verify(checker, never()).checkSyntax(anyCollectionOf(JsonPointer.class), any(MessageBundle.class), anyReport(), anySchema()); }
@Test( dependsOnMethods = "keywordIsSupportedInThisDictionary", dataProvider = "getValueTests" ) public final void valueTestsSucceed(final JsonNode schema, final String msg, final boolean success, final ObjectNode msgData) throws ProcessingException { final SchemaTree tree = new CanonicalSchemaTree(SchemaKey.anonymousKey(), schema); checker.checkSyntax(pointers, BUNDLE, report, tree); if (success) { verify(report, never()).error(anyMessage()); return; } final ArgumentCaptor<ProcessingMessage> captor = ArgumentCaptor.forClass(ProcessingMessage.class); verify(report).error(captor.capture()); final ProcessingMessage message = captor.getValue(); assertMessage(message).isSyntaxError(keyword, msg, tree) .hasContents(msgData); }
@Test( dependsOnMethods = "keywordIsSupportedInThisDictionary", dataProvider = "invalidTypes" ) public final void invalidTypesAreReportedAsErrors(final JsonNode node) throws ProcessingException { final SchemaTree tree = treeFromValue(keyword, node); final NodeType type = NodeType.getNodeType(node); final ArgumentCaptor<ProcessingMessage> captor = ArgumentCaptor.forClass(ProcessingMessage.class); checker.checkSyntax(pointers, BUNDLE, report, tree); verify(report).error(captor.capture()); final ProcessingMessage msg = captor.getValue(); final String message = BUNDLE.printf("common.incorrectType", type, EnumSet.complementOf(invalidTypes)); assertMessage(msg).isSyntaxError(keyword, message, tree) .hasField("expected", EnumSet.complementOf(invalidTypes)) .hasField("found", type); }