### Question:
LogsValidator extends GroupLogValidator<Log> { @Override public void validate(Method method, Set<Log> target) throws AnnotationUsageException { super.validate(method, target); target.forEach(log -> logValidator.validate(method, log)); } LogsValidator(Map<String, Set<String>> loggerNames,
                         LogValidator<Log> logValidator); @Override void validate(Method method, Set<Log> target);  }### Answer:
@Test public void isTransitive() { Map<String, Set<String>> loggerNames = singletonMap("logger", new HashSet<>(asList("logger", ""))); @SuppressWarnings("unchecked") LogValidator<Log> logValidator = (LogValidator<Log>) mock(LogValidator.class); LogsValidator logsValidator = new LogsValidator(loggerNames, logValidator); Log log = synthesizeAnnotation(Log.class); Set<Log> annotations = singleton(log); logsValidator.validate(method, annotations); verify(logValidator).validate(method, log); }