/** * Add a new keyword to this library * * @param keyword the keyword * @return this * @throws NullPointerException keyword is null */ public LibraryBuilder addKeyword(final Keyword keyword) { BUNDLE.checkNotNull(keyword, "nullKeyword"); final String name = keyword.name; removeKeyword(name); syntaxCheckers.addEntry(name, keyword.syntaxChecker); if (keyword.validatorFactory != null) { digesters.addEntry(name, keyword.digester); validators.addEntry(name, keyword.validatorFactory); } return this; }
/** * Add a format attribute * * @param name the name for this attribute * @param attribute the format attribute * @return this * @throws NullPointerException the name or attribute is null */ public LibraryBuilder addFormatAttribute(final String name, final FormatAttribute attribute) { removeFormatAttribute(name); BUNDLE.checkNotNullPrintf(attribute, "nullAttribute", name); formatAttributes.addEntry(name, attribute); return this; }
@BeforeMethod public void setupDigesters() { final DictionaryBuilder<Digester> builder = Dictionary.newBuilder(); digester1 = mock(Digester.class); when(digester1.digest(any(JsonNode.class))).thenReturn(digest1); when(digester1.supportedTypes()).thenReturn(TYPES1); builder.addEntry(K1, digester1); digester2 = mock(Digester.class); when(digester2.digest(any(JsonNode.class))).thenReturn(digest2); when(digester2.supportedTypes()).thenReturn(TYPES2); builder.addEntry(K2, digester2); schemaDigester = new SchemaDigester(builder.freeze()); }
@BeforeMethod public void init() { attribute = mock(FormatAttribute.class); when(attribute.supportedTypes()).thenReturn(SUPPORTED); report = mock(ProcessingReport.class); final Dictionary<FormatAttribute> dictionary = Dictionary.<FormatAttribute>newBuilder().addEntry(FMT, attribute) .freeze(); processor = new FormatProcessor(dictionary); }
public ValidatorBuilderTest() throws NoSuchMethodException { final DictionaryBuilder<KeywordValidatorFactory> builder = Dictionary.newBuilder(); KeywordValidatorFactory factory; factory = new ReflectionKeywordValidatorFactory(K1, Keyword1.class); builder.addEntry(K1, factory); factory = new ReflectionKeywordValidatorFactory(K2, Keyword2.class); builder.addEntry(K2, factory); factory = new ReflectionKeywordValidatorFactory(CHALLENGED, Challenged.class); builder.addEntry(CHALLENGED, factory); validatorBuilder = new ValidatorBuilder(builder.freeze()); }
@Test public void cannotInsertNullValue() { try { builder.addEntry(KEY, null); fail("No exception thrown!!"); } catch (NullPointerException e) { assertEquals(e.getMessage(), BUNDLE.getMessage("dictionary.nullValue")); } }
@Test public void cannotInsertNullKey() { try { builder.addEntry(null, null); fail("No exception thrown!!"); } catch (NullPointerException e) { assertEquals(e.getMessage(), BUNDLE.getMessage("dictionary.nullKey")); } }
@Test public void removedValueCannotBeRetrieved() { builder.addEntry(KEY, MOCK1); builder.removeEntry(KEY); assertNull(builder.freeze().entries().get(KEY)); }
@Test public void insertedValueCanBeRetrieved() { builder.addEntry(KEY, MOCK1); assertSame(builder.freeze().entries().get(KEY), MOCK1); }
@BeforeMethod public void initialize() { report = spy(new TestProcessingReport()); final DictionaryBuilder<SyntaxChecker> builder = Dictionary.newBuilder(); checker = mock(SyntaxChecker.class); builder.addEntry(K1, checker); builder.addEntry(K2, new SyntaxChecker() { @Override public EnumSet<NodeType> getValidTypes() { return EnumSet.noneOf(NodeType.class); } @Override public void checkSyntax(final Collection<JsonPointer> pointers, final MessageBundle bundle, final ProcessingReport report, final SchemaTree tree) throws ProcessingException { report.error(new ProcessingMessage().setMessage(ERRMSG)); } }); processor = new SyntaxProcessor(BUNDLE, builder.freeze()); }