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