@Test public void onlyEmitsEventsWhenShapeHasBoundTraitAndHasTemplate() { EmitEachSelectorValidator.Config config = new EmitEachSelectorValidator.Config(); Model model = Model.builder() .addShape(StringShape.builder() .id(ShapeId.from("foo.bar#A")) .addTrait(new DocumentationTrait("hello")) .build()) .addShape(StringShape.builder().id(ShapeId.from("foo.bar#B")).build()) .build(); config.setSelector(Selector.parse("*")); config.setMessageTemplate("This is only set to test the necessary code path of using templates..."); config.setBindToTrait(DocumentationTrait.ID); EmitEachSelectorValidator validator = new EmitEachSelectorValidator(config); List<ValidationEvent> events = validator.validate(model); assertThat(events, hasSize(1)); assertThat(events.get(0).getShapeId(), equalTo(Optional.of(ShapeId.from("foo.bar#A")))); }
@Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } EmitEachSelectorValidator(Config config); }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } EmitEachSelectorValidator(Config config); @Override List<ValidationEvent> validate(Model model); }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } EmitEachSelectorValidator(Config config); @Override List<ValidationEvent> validate(Model model);  }