package alien4cloud.tosca.container.validation;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.alien4cloud.tosca.model.definitions.PropertyDefinition;
import org.alien4cloud.tosca.model.definitions.ScalarPropertyValue;
import alien4cloud.tosca.normative.ToscaType;
@Ignore
public class ToscaPropertyDefaultValueTypeValidatorTest {
private Validator validator = Validation.buildDefaultValidatorFactory().getValidator();;
private PropertyDefinition createDefinitions(String propertyType, String defaultValue) {
PropertyDefinition propertyDefinition = new PropertyDefinition();
propertyDefinition.setType(propertyType);
propertyDefinition.setDefault(new ScalarPropertyValue(defaultValue));
return propertyDefinition;
}
@Test
public void validStringDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.STRING.toString(), "string value"));
Assert.assertEquals(0, violations.size());
}
@Test
public void validBooleanDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.BOOLEAN, "true"));
Assert.assertEquals(0, violations.size());
}
@Test
public void invalidBooleanDefaultShouldCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.BOOLEAN, "not a boolean"));
Assert.assertEquals(1, violations.size());
}
@Test
public void validFloatDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.FLOAT, "6.5"));
Assert.assertEquals(0, violations.size());
}
@Test
public void invalidFloatDefaultShouldCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.FLOAT, "not a float"));
Assert.assertEquals(1, violations.size());
}
@Test
public void validIntegerDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.INTEGER, "4"));
Assert.assertEquals(0, violations.size());
}
@Test
public void invalidIntegerDefaultShouldCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.INTEGER, "not an integer"));
Assert.assertEquals(1, violations.size());
}
@Ignore
@Test
public void validCanonicalTimestampDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator
.validate(createDefinitions(ToscaType.TIMESTAMP, "2001-12-15T02:59:43.1Z"));
Assert.assertEquals(0, violations.size());
}
@Ignore
@Test
public void validIso8601TimestampDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.TIMESTAMP,
"2001-12-14t21:59:43.10-05:00"));
Assert.assertEquals(0, violations.size());
}
@Ignore
@Test
public void validSpaceSeparatedTimestampDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.TIMESTAMP,
"2001-12-14 21:59:43.10 -5"));
Assert.assertEquals(0, violations.size());
}
@Ignore
@Test
public void validNoTimezoneTimestampDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator
.validate(createDefinitions(ToscaType.TIMESTAMP, "2001-12-15 2:59:43.10"));
Assert.assertEquals(0, violations.size());
}
@Ignore
@Test
public void validDateTimestampDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.TIMESTAMP, "2002-12-14"));
Assert.assertEquals(0, violations.size());
}
@Test
public void invalidTimestampDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.TIMESTAMP,
"2001-12-14 21:59:43.10 Z-5"));
Assert.assertEquals(1, violations.size());
}
@Test
public void validVersionDefaultShouldNotCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.VERSION, "1.3.15"));
Assert.assertEquals(0, violations.size());
}
// Versions are not managed currently.
@Ignore
@Test
public void invalidVersionDefaultShouldCreateViolations() {
Set<ConstraintViolation<PropertyDefinition>> violations = validator.validate(createDefinitions(ToscaType.VERSION, "not a version"));
Assert.assertEquals(1, violations.size());
}
}