package org.ovirt.engine.core.common.utils;
import static org.junit.Assert.assertEquals;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import javax.validation.constraints.Pattern;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
public class IPAddressPatternTest {
private Validator validator = ValidationUtils.getValidator();
@Parameterized.Parameter(0)
public String address;
@Parameterized.Parameter(1)
public boolean expectedResult;
@Test
public void checkIPAdress() {
Set<ConstraintViolation<IPAdress>> validate = validator.validate(new IPAdress(address));
assertEquals(expectedResult, validate.isEmpty());
}
@Parameterized.Parameters
public static Object[][] ipAddressParams() {
return new Object[][] {
{ "0.0.0.0", true },
{ "1.1.1.1", true },
{ "255.255.255.255", true },
{ "192.168.1.1", true },
{ "10.10.1.1", true },
{ "127.0.0.1", true },
{ "", true },
{ null, true },
{ "10.10.10", false },
{ "10.10", false },
{ "10", false },
{ "1.1.1.", false },
{ "1.1..1", false },
{ "1..1.1", false },
{ ".1.1.1", false },
{ "....", false },
{ "...", false },
{ "..", false },
{ ".", false },
{ "1.1.1.1.1", false },
{ "a.10.10.10", false },
{ "10.a.10.10", false },
{ "10.10.a.10", false },
{ "10.10.10.a", false },
{ "a.a.a.a", false },
{ "256.10.10.10", false },
{ "10.256.10.10", false },
{ "10.10.256.10", false },
{ "10.10.10.256", false },
{ "300.10.10.10", false },
{ "10.300.10.10", false },
{ "10.10.300.10", false },
{ "10.10.10.300", false },
{ "-1.10.10.10", false },
{ "10.-1.10.10", false },
{ "10.10.-1.10", false },
{ "10.10.10.-1", false },
{ " ", false },
};
}
private static class IPAdress {
@Pattern(regexp = ValidationUtils.IPV4_PATTERN, message = "IPV4_ADDR_BAD_FORMAT")
private String address;
public IPAdress(String address) {
this.address = address;
}
}
}