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