/** * Return a default, frozen configuration * * @return a new configuration */ public static ValidationConfiguration byDefault() { return newBuilder().freeze(); }
public ValidationProcessor(final ValidationConfiguration cfg, final Processor<SchemaContext, ValidatorList> processor) { syntaxMessages = cfg.getSyntaxMessages(); validationMessages = cfg.getValidationMessages(); this.processor = processor; }
/** * Return a thawed instance out of this frozen configuration * * @return a {@link ValidationConfigurationBuilder} * @see ValidationConfigurationBuilder#ValidationConfigurationBuilder(ValidationConfiguration) */ @Override public ValidationConfigurationBuilder thaw() { return new ValidationConfigurationBuilder(this); } }
@BeforeMethod public void init() { final Keyword keyword = Keyword.newBuilder(K1) .withSyntaxChecker(mock(SyntaxChecker.class)) .withIdentityDigester(NodeType.ARRAY, NodeType.values()) .withValidatorClass(K1Validator.class) .freeze(); final Library library = DraftV4Library.get().thaw() .addKeyword(keyword).freeze(); final ValidationConfiguration cfg = ValidationConfiguration.newBuilder() .setDefaultLibrary("foo://bar#", library).freeze(); final JsonSchemaFactory factory = JsonSchemaFactory.newBuilder() .setValidationConfiguration(cfg).freeze(); processor = factory.getProcessor(); COUNT.set(0); }
@Test public void defaultLibraryIsAccountedFor() { final String ref = "x://y.z/schema#"; final Library library = Library.newBuilder().freeze(); cfg.setDefaultLibrary(ref, library); assertSame(cfg.freeze().getDefaultLibrary(), library); } }
protected TestSuite(final SchemaVersion version, final String fileName) throws IOException { final ValidationConfiguration cfg = ValidationConfiguration.newBuilder() .setDefaultVersion(version).freeze(); validator = JsonSchemaFactory.newBuilder() .setValidationConfiguration(cfg).freeze().getValidator(); testSuite = JsonLoader.fromResource("/testsuite/" + fileName + ".json"); }
@BeforeMethod public void initConfiguration() { cfg = ValidationConfiguration.newBuilder(); }
@Test public void defaultLibraryIsDraftV4() { final ValidationConfiguration defaultConfiguration = ValidationConfiguration.byDefault(); assertSame(defaultConfiguration.getDefaultLibrary(), DraftV4Library.get()); }
@Test public void cannotPutNullValidationMessageBundle() { try { cfg.setValidationMessages(null); fail("No exception thrown!!"); } catch (NullPointerException e) { assertEquals(e.getMessage(), BUNDLE.getMessage("nullMessageBundle")); } }
/** * Constructor * * @param cfg the validation configuration to use */ public SyntaxValidator(final ValidationConfiguration cfg) { final MessageBundle syntaxMessages = cfg.getSyntaxMessages(); final ProcessorMap<JsonRef, ValueHolder<SchemaTree>, ValueHolder<SchemaTree>> map = new ProcessorMap<JsonRef, ValueHolder<SchemaTree>, ValueHolder<SchemaTree>>(FUNCTION); Dictionary<SyntaxChecker> dict; dict = cfg.getDefaultLibrary().getSyntaxCheckers(); final SyntaxProcessor byDefault = new SyntaxProcessor( cfg.getSyntaxMessages(), dict); map.setDefaultProcessor(byDefault); final Map<JsonRef,Library> libraries = cfg.getLibraries(); JsonRef ref; SyntaxProcessor syntaxProcessor; for (final Map.Entry<JsonRef, Library> entry: libraries.entrySet()) { ref = entry.getKey(); dict = entry.getValue().getSyntaxCheckers(); syntaxProcessor = new SyntaxProcessor(syntaxMessages, dict); map.addEntry(ref, syntaxProcessor); } processor = map.getProcessor(); }
/** * Add a library and sets it as the default * * @param uri the value for {@code $schema} * @param library the library * @return this * @see #addLibrary(String, Library) */ public ValidationConfigurationBuilder setDefaultLibrary(final String uri, final Library library) { addLibrary(uri, library); defaultLibrary = library; return this; }
@Test public void cannotPutNullSyntaxMessageBundle() { try { cfg.setSyntaxMessages(null); fail("No exception thrown!!"); } catch (NullPointerException e) { assertEquals(e.getMessage(), BUNDLE.getMessage("nullMessageBundle")); } }
/** * A builder with the default configuration * * @see JsonSchemaFactory#newBuilder() */ JsonSchemaFactoryBuilder() { reportProvider = new ListReportProvider(LogLevel.INFO, LogLevel.FATAL); loadingCfg = LoadingConfiguration.byDefault(); validationCfg = ValidationConfiguration.byDefault(); }
/** * Return a frozen version of this configuration * * @return a {@link ValidationConfiguration} * @see ValidationConfiguration#ValidationConfiguration(ValidationConfigurationBuilder) */ @Override public ValidationConfiguration freeze() { return new ValidationConfiguration(this); } }
public FormatProcessor(final Library library, final ValidationConfiguration cfg) { attributes = library.getFormatAttributes().entries(); bundle = cfg.getValidationMessages(); }
@Test public void defaultVersionCannotBeNull() { try { cfg.setDefaultVersion(null); fail("No exception thrown!!"); } catch (NullPointerException e) { assertEquals(e.getMessage(), BUNDLE.getMessage("nullVersion")); } }
@Test public void cannotPutInvalidCacheSize() { try { cfg.setCacheSize(-2); fail("No exception thrown!!"); } catch (IllegalArgumentException e) { assertEquals(e.getMessage(), BUNDLE.getMessage("invalidCacheSize")); } }
@Test public void cannotPutNullLibrary() { final String ref = "x://y.z/schema#"; try { cfg.addLibrary(ref, null); fail("No exception thrown!!"); } catch (NullPointerException e) { assertEquals(e.getMessage(), BUNDLE.getMessage("nullLibrary")); } }
/** * Return a new thawed instance of the default configuration * * @return a new configuration builder * @see ValidationConfigurationBuilder#ValidationConfigurationBuilder() */ public static ValidationConfigurationBuilder newBuilder() { return new ValidationConfigurationBuilder(); }
@Test public void cannotOverrideExistingLibrary() { final String ref = "x://y.z/schema#"; final Library library = Library.newBuilder().freeze(); try { cfg.addLibrary(ref, library); cfg.addLibrary(ref, library); fail("No exception thrown!!"); } catch (IllegalArgumentException e) { assertEquals(e.getMessage(),BUNDLE.printf("dupLibrary", ref)); } }