package com.googlecode.totallylazy.validations;
import org.junit.Test;
import static com.googlecode.totallylazy.predicates.Predicates.is;
import static com.googlecode.totallylazy.matchers.IterableMatcher.hasExactly;
import static com.googlecode.totallylazy.matchers.IterableMatcher.isEmpty;
import static com.googlecode.totallylazy.validations.Validators.validateThat;
import static org.hamcrest.MatcherAssert.assertThat;
public class AnyOfValidatorTest {
@Test
public void shouldPassIfAnyValidatorPasses() {
LogicalValidator<String> validator = validateThat(is("A")).
or(validateThat(is("B"))). // or() creates an AnyOfValidator
assigningFailuresTo("key").
castValidator();
assertThat(validator.validate("A").messages("key"), isEmpty(String.class));
assertThat(validator.validate("B").messages("key"), isEmpty(String.class));
}
@Test
public void shouldFailIfAllValidatorsFail() {
LogicalValidator<String> validator = validateThat(is("A")).
or(validateThat(is("B"))). // or() creates an AnyOfValidator
assigningFailuresTo("key").
castValidator();
assertThat(validator.validate("C").messages("key"), hasExactly(AnyOfValidator.DEFAULT_MESSAGE));
}
}