package org.ovirt.engine.ui.uicommonweb.validation; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.Matchers.emptyCollectionOf; import static org.junit.Assert.assertThat; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.hamcrest.Matchers; import org.junit.Test; public class AlternativeValidationTest { @Test public void testAlteringPatternsWithMultipleFailingPatterns() throws Exception { List<IValidation> validations = Arrays.<IValidation>asList(new RegexValidation("^$", ""), new RegexValidation("^b$", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ doTest(validations, false); } @Test public void testAlteringPatternsWithMultiplePatternsSecondValid() throws Exception { List<IValidation> validations = Arrays.<IValidation>asList(new RegexValidation("^$", ""), new RegexValidation("^a.*$", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ doTest(validations, true); } @Test public void testAlteringPatternsWithMultiplePatternsFirstValid() throws Exception { List<IValidation> validations = Arrays.<IValidation>asList(new RegexValidation("^a.*$", ""), new RegexValidation("^$", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ doTest(validations, true); } @Test public void testAlteringValidationWithNoValidation() throws Exception { doTest(Collections.<IValidation> emptyList(), true); } private void doTest(List<IValidation> validations, boolean expectedToSucceed) { String reason = "reason"; //$NON-NLS-1$ ValidationResult validationResult = new AlternativeValidation(reason, validations).validate("abc"); //$NON-NLS-1$ assertThat(validationResult.getSuccess(), is(expectedToSucceed)); if (expectedToSucceed) { assertThat(validationResult.getReasons(), is(emptyCollectionOf(String.class))); } else { assertThat(validationResult.getReasons(), is(Matchers.containsInAnyOrder(reason))); } } }