@Test
public void validateHardPassFailTimeout() {

    AdmissionValidator pass = new PassJobValidator();
    AdmissionValidator fail = new FailJobValidator();
    AdmissionValidator never = new NeverJobValidator();
    AdmissionValidator parallelValidator = new AggregatingValidator(
            configuration,
            registry,
            Arrays.asList(pass, fail, never));
    Mono<Set<ValidationError>> mono = parallelValidator.validate(MOCK_JOB);
    StepVerifier.create(mono)
            .expectNextMatches(errors -> errors.size() == 2)
            .verifyComplete();
    Set<ValidationError> errors = mono.block();
    validateErrorType(errors, ValidationError.Type.HARD);
    Collection<ValidationError> failErrors = errors.stream()
            .filter(error -> error.getField().equals(FailJobValidator.ERR_FIELD))
            .collect(Collectors.toList());
    assertThat(failErrors).hasSize(1);
    validateFailErrors(failErrors);
    Collection<ValidationError> timeoutErrors = errors.stream()
            .filter(error -> error.getField().equals(NeverJobValidator.class.getSimpleName()))
            .collect(Collectors.toList());
    assertThat(timeoutErrors).hasSize(1);
    validateTimeoutErrors(timeoutErrors);
}