package org.ovirt.engine.core.common.validation; import static org.junit.Assert.assertEquals; import java.util.Random; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @RunWith(Parameterized.class) public class MaskValidatorTest { @Parameterized.Parameter(0) public String mask; @Parameterized.Parameter(1) public boolean isNetmaskValidFormat; @Parameterized.Parameter(2) public boolean isNetmaskValidValue; @Parameterized.Parameter(3) public boolean isPrefixValid; @Test public void checkNetmaskFormatValidation() { assertEquals("Failed to validate mask's Format: " + mask, isNetmaskValidFormat, MaskValidator.getInstance().isValidNetmaskFormat(mask)); } @Test public void checkPrefixFormatValidation() { assertEquals("Failed to validate prefix's Format: " + mask, isPrefixValid, MaskValidator.getInstance().isPrefixValid(mask)); } @Test public void checkNetmaskValidValue() { if (!MaskValidator.getInstance().isValidNetmaskFormat(mask)) { return; } assertEquals("Failed to validate mask value" + mask, isNetmaskValidValue, MaskValidator.getInstance().isNetmaskValid(mask)); } @Parameterized.Parameters public static Object[][] namesParams() { Random random = new Random(); return new Object[][] { // Bad Format { null, false, random.nextBoolean(), false }, //$NON-NLS-1$ { "", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "a.a.a.a", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "255.255.0", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "255.255.0.0.0", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "255.255.0.0.", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "31 ", false, random.nextBoolean(), false }, //$NON-NLS-1$ /*note extra space*/ { "/31 ", false, random.nextBoolean(), false }, //$NON-NLS-1$ /*note extra space*/ { "31/", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "31*", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "//31 ", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "33", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "/33", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "01", false, random.nextBoolean(), false }, //$NON-NLS-1$ { "01/", false, random.nextBoolean(), false }, //$NON-NLS-1$ // Not Valid { "255.255.0.1", true, false, false }, //$NON-NLS-1$ { "255.0.255.0", true, false, false }, //$NON-NLS-1$ { "255.0.0.255", true, false, false }, //$NON-NLS-1$ { "224.0.255.0", true, false, false }, //$NON-NLS-1$ // Valid { "255.255.0.0", true, true, false }, //$NON-NLS-1$ { "255.255.255.255", true, true, false }, //$NON-NLS-1$ { "31", false, random.nextBoolean(), true }, //$NON-NLS-1$ { "/31", false, random.nextBoolean(), true }, //$NON-NLS-1$ { "7", false, random.nextBoolean(), true }, //$NON-NLS-1$ { "/7", false, random.nextBoolean(), true }, //$NON-NLS-1$ }; } }