package org.openstack.atlas.api.validation.verifiers;
import java.util.regex.Pattern;
import org.openstack.atlas.api.validation.SimpleBean;
import org.openstack.atlas.api.validation.context.HttpRequestType;
import org.openstack.atlas.api.validation.Validator;
import org.openstack.atlas.api.validation.ValidatorBuilder;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import static org.openstack.atlas.api.validation.ValidatorBuilder.*;
import static org.junit.Assert.*;
/**
*
* @author zinic
*/
@RunWith(Enclosed.class)
public class MustMatchTest {
public static class WhenVerifyingRegularExpressions {
private SimpleBean testObjectA;
private SimpleBean testObjectB;
@Before
public void standUp() {
testObjectA = new SimpleBean("1", "2", "3", 1, null, 3);
testObjectB = new SimpleBean("0", "2", "3", null, 2, 3);
}
@Test
public void shouldValidateCompiledPatternsAgainstStrings() {
final Validator<SimpleBean> validator = build(new ValidatorBuilder<SimpleBean>(SimpleBean.class) {
{
result(validationTarget().getStringProperty1()).must().match(Pattern.compile("1"));
}
});
assertTrue(validator.validate(testObjectA, HttpRequestType.POST).passedValidation());
assertFalse(validator.validate(testObjectB, HttpRequestType.POST).passedValidation());
}
@Test
public void shouldValidateCompiledPatternsAgainstOtherObjects() {
final Validator<SimpleBean> validator = build(new ValidatorBuilder<SimpleBean>(SimpleBean.class) {
{
result(validationTarget().getIntProperty1()).must().match(Pattern.compile("1"));
}
});
assertTrue(validator.validate(testObjectA, HttpRequestType.POST).passedValidation());
assertFalse(validator.validate(testObjectB, HttpRequestType.POST).passedValidation());
}
}
}