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 org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.ovirt.engine.core.common.validation.annotation.ValidName; @RunWith(Parameterized.class) public class ValidNameValidatorTest { private Validator validator; @Parameterized.Parameter(0) public String name; @Parameterized.Parameter(1) public boolean expectedResult; @Before public void setup() throws Exception { validator = ValidationUtils.getValidator(); } @Test public void checkName() { ValidNameContainer container = new ValidNameContainer(name); Set<ConstraintViolation<ValidNameContainer>> result = validator.validate(container); assertEquals("Failed to validate name: " + container.getName(), expectedResult, result.isEmpty()); } @Parameterized.Parameters public static Object[][] namesParams() { return new Object[][] { { "abc", true }, { "123", true }, { "abc123", true }, { "123abc", true }, { null, true }, { " ", false }, { "", false }, { "abc ", false }, { " abc", false }, { "abc cde", false }, { "abc*", false } }; } private static class ValidNameContainer { @ValidName private String name; public ValidNameContainer(String name) { this.name = name; } public String getName() { return name; } } }