package no.met.metadataeditor.dataTypes;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class DataTypeTest {
@Test
public void testFloatValidation() {
assertFalse(DataType.FLOAT.validate("").isValid);
assertFalse(DataType.FLOAT.validate("test").isValid);
assertFalse(DataType.FLOAT.validate("123 test").isValid);
assertFalse(DataType.FLOAT.validate("7667test").isValid);
assertFalse(DataType.FLOAT.validate("test123").isValid);
assertFalse(DataType.FLOAT.validate("76 123123").isValid);
assertFalse(DataType.FLOAT.validate("123123 test").isValid);
assertFalse(DataType.FLOAT.validate("-12e123").isValid);
assertTrue(DataType.FLOAT.validate("12").isValid);
assertTrue(DataType.FLOAT.validate("12.0").isValid);
assertTrue(DataType.FLOAT.validate("12.123132").isValid);
assertTrue(DataType.FLOAT.validate("-12").isValid);
assertTrue(DataType.FLOAT.validate("-12E123").isValid);
assertTrue(DataType.FLOAT.validate("-0.2323").isValid);
assertTrue(DataType.FLOAT.validate("0,4").isValid);
assertTrue(DataType.FLOAT.validate("123133999999999912323232332233299992323").isValid);
assertTrue(DataType.FLOAT.validate("123133999999999912323232332233299992323.87878").isValid);
}
@Test
public void testIntegerValidation() {
assertFalse(DataType.INTEGER.validate("").isValid);
assertFalse(DataType.INTEGER.validate("test").isValid);
assertFalse(DataType.INTEGER.validate("123 test").isValid);
assertFalse(DataType.INTEGER.validate("4656rere").isValid);
assertFalse(DataType.INTEGER.validate("fdff213").isValid);
assertFalse(DataType.INTEGER.validate("3434 3434").isValid);
assertFalse(DataType.INTEGER.validate("1.0").isValid);
assertFalse(DataType.INTEGER.validate("0.1").isValid);
assertFalse(DataType.INTEGER.validate("1e2").isValid);
assertTrue(DataType.INTEGER.validate("12").isValid);
assertTrue(DataType.INTEGER.validate("-12").isValid);
assertTrue(DataType.INTEGER.validate("13213323432432432423432432492490239209029303923").isValid);
assertTrue(DataType.INTEGER.validate("1E2").isValid);
}
@Test
public void testDateValidation() {
assertFalse(DataType.DATE.validate("").isValid);
assertFalse(DataType.DATE.validate("2012").isValid);
assertFalse(DataType.DATE.validate("20121212").isValid);
assertFalse(DataType.DATE.validate("text").isValid);
assertFalse(DataType.DATE.validate("2012-12-12test").isValid);
assertFalse(DataType.DATE.validate("-2012-12-12").isValid);
assertFalse(DataType.DATE.validate("2012-13-12").isValid);
assertFalse(DataType.DATE.validate("2012-11-32").isValid);
assertFalse(DataType.DATE.validate("2012-02-30").isValid);
assertTrue(DataType.DATE.validate("2010-01-01").isValid);
assertTrue(DataType.DATE.validate("1900-06-30").isValid);
assertTrue(DataType.DATE.validate("2110-10-09").isValid);
}
@Test
public void testDateTimeValidation() {
assertFalse(DataType.DATETIME.validate("").isValid);
assertFalse(DataType.DATETIME.validate("2012").isValid);
assertFalse(DataType.DATETIME.validate("20121212").isValid);
assertFalse(DataType.DATETIME.validate("text").isValid);
assertFalse(DataType.DATETIME.validate("2012-12-12test").isValid);
assertFalse(DataType.DATETIME.validate("-2012-12-12").isValid);
assertFalse(DataType.DATETIME.validate("2012-13-12").isValid);
assertFalse(DataType.DATETIME.validate("2012-11-32").isValid);
assertFalse(DataType.DATETIME.validate("2012-02-30").isValid);
assertFalse(DataType.DATETIME.validate("2010-01-01").isValid);
assertFalse(DataType.DATETIME.validate("1900-06-30").isValid);
assertFalse(DataType.DATETIME.validate("2110-10-09").isValid);
assertFalse(DataType.DATETIME.validate("2110-10-09T00:00").isValid);
assertFalse(DataType.DATETIME.validate("2110-10-09T00:12:43").isValid);
assertFalse(DataType.DATETIME.validate("2110-10-09T32:12:43Z").isValid);
assertTrue(DataType.DATETIME.validate("2010-01-01T00:00:00Z").isValid);
assertTrue(DataType.DATETIME.validate("1900-02-01T12:59:30Z").isValid);
assertTrue(DataType.DATETIME.validate("2110-12-31T20:00:00Z").isValid);
assertTrue(DataType.DATETIME.validate("2110-10-09T12:12Z").isValid);
}
@Test
public void testStringValidation(){
assertFalse(DataType.STRING.validate("").isValid);
assertTrue(DataType.STRING.validate("sdfasdf").isValid);
assertTrue(DataType.STRING.validate("sdfasdf asdfsaf aoifu091213 13209183 13213213").isValid);
}
@Test
public void testURLValidation(){
assertFalse(DataType.URL.validate("").isValid);
assertFalse(DataType.URL.validate("met.no").isValid);
assertFalse(DataType.URL.validate("metadata").isValid);
assertFalse(DataType.URL.validate("http://metadata.met.no\test").isValid);
assertTrue(DataType.URL.validate("http://met.no").isValid);
assertTrue(DataType.URL.validate("https://met.no/test").isValid);
assertTrue(DataType.URL.validate("http://met.no?test=ewew&resrer=3121").isValid);
assertTrue(DataType.URL.validate("ftp://met.no").isValid);
assertTrue(DataType.URL.validate("opendap://met.no").isValid);
}
@Test
public void testURIValidation(){
assertFalse(DataType.URI.validate("").isValid);
assertFalse(DataType.URI.validate("123:3434:test").isValid);
assertTrue(DataType.URI.validate("http://met.no").isValid);
assertTrue(DataType.URI.validate("https://met.no/test").isValid);
assertTrue(DataType.URI.validate("http://met.no?test=ewew&resrer=3121").isValid);
assertTrue(DataType.URI.validate("ftp://met.no").isValid);
assertTrue(DataType.URI.validate("opendap://met.no").isValid);
assertTrue(DataType.URI.validate("test").isValid);
assertTrue(DataType.URI.validate("dfdf/dffd/").isValid);
assertTrue(DataType.URI.validate("/test/er").isValid);
}
@Test
public void testEmailValidation(){
assertFalse(DataType.EMAIL.validate("").isValid);
assertFalse(DataType.EMAIL.validate("test").isValid);
assertFalse(DataType.EMAIL.validate("test@example.").isValid);
assertTrue(DataType.EMAIL.validate("test@example.com").isValid);
}
}