package org.ovirt.engine.core.common.validation; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @RunWith(Parameterized.class) public class CidrValidatorTest { @Parameterized.Parameter(0) public String cidr; @Parameterized.Parameter(1) public boolean validCidrFormatExpectedResult; @Parameterized.Parameter(2) public boolean validNetworkAddressExpectedResult; @Test public void checkCidrFormatValidation() { assertEquals("Failed to validate CIDR's Format: " + cidr, validCidrFormatExpectedResult, CidrValidator.getInstance().isCidrFormatValid(cidr)); } @Test public void checkNetworkAddressValidation() { if (!validCidrFormatExpectedResult) { return; } assertEquals("Failed to validate CIDR's network address" + cidr, validNetworkAddressExpectedResult, CidrValidator.getInstance().isCidrNetworkAddressValid(cidr)); } @Parameterized.Parameters public static Object[][] data() { return new Object[][] { // Bad Format { null, false, false }, { "", false, false }, { "?\"?>!", false, false }, { "a", false, false }, { "a.a", false, false }, { "a.a.a", false, false }, { "a.a.a.a", false, false }, { "a.a.a.a/a", false, false }, { "1", false, false }, { "1.1.1.1", false, false }, { "1.1.1.1/", false, false }, { "1000.1.1.1/24", false, false }, { "1.1000.1.1/24", false, false }, { "1.1.1000.1/24", false, false }, { "1.1.1.1000/24", false, false }, { "1.1.1.1/33", false, false }, { "1111.1.1.1/1", false, false }, { "1111.1.1.1/32", false, false }, { "1.1.1.1/1/1", false, false }, { "1.1/1.1/.1/.1", false, false }, { "256.1.1.1/1", false, false }, { "256.1.1.1/32", false, false }, { "256.1.1.1/222222222222222222222222", false, false }, { "255.?.?././", false, false }, { "255?23?1?0/8", false, false }, { "23\22\22\22\22\\", false, false }, { ".................", false, false }, { "././././", false, false }, { "?/?/?/?/", false, false }, // Not A Network address { "253.0.0.32/26", true, false }, { "255.255.255.192/25", true, false }, { "255.255.255.16/24", true, false }, { "255.254.192.0/17", true, false }, { "255.255.255.250/16", true, false }, { "255.255.192.17/14", true, false }, { "255.128.0.0/8", true, false }, { "240.255.255.247/3", true, false }, { "224.0.0.0/2", true, false }, { "192.0.0.0/1", true, false }, { "255.255.255.255/0", true, false }, // valid CIDR { "255.255.255.255/32", true, true }, { "0.0.0.0/32", true, true }, { "255.255.255.254/31", true, true }, { "255.255.255.248/29", true, true }, { "255.255.255.0/24", true, true }, { "255.255.254.0/23", true, true }, { "255.0.254.0/23", true, true }, { "255.255.0.0/16", true, true }, { "255.252.0.0/14", true, true }, { "255.0.0.0/8", true, true }, { "248.0.0.0/5", true, true }, { "128.0.0.0/1", true, true }, }; } }