@Test
public void testDataValueIsValid()
{

    DataElement de = new DataElement( "DEA" );
    de.setValueType( ValueType.INTEGER );
    assertNull( dataValueIsValid( null, de ) );
    assertNull( dataValueIsValid( "", de ) );
    assertNull( dataValueIsValid( "34", de ) );
    assertNotNull( dataValueIsValid( "Yes", de ) );
    de.setValueType( ValueType.NUMBER );
    assertNull( dataValueIsValid( "3.7", de ) );
    assertNotNull( dataValueIsValid( "No", de ) );
    de.setValueType( ValueType.INTEGER_POSITIVE );
    assertNull( dataValueIsValid( "3", de ) );
    assertNotNull( dataValueIsValid( "-4", de ) );
    de.setValueType( ValueType.INTEGER_ZERO_OR_POSITIVE );
    assertNull( dataValueIsValid( "3", de ) );
    assertNotNull( dataValueIsValid( "-4", de ) );
    de.setValueType( ValueType.INTEGER_NEGATIVE );
    assertNull( dataValueIsValid( "-3", de ) );
    assertNotNull( dataValueIsValid( "4", de ) );
    de.setValueType( ValueType.TEXT );
    assertNull( dataValueIsValid( "0", de ) );
    de.setValueType( ValueType.BOOLEAN );
    assertNull( dataValueIsValid( "true", de ) );
    assertNull( dataValueIsValid( "false", de ) );
    assertNull( dataValueIsValid( "FALSE", de ) );
    assertNotNull( dataValueIsValid( "yes", de ) );
    de.setValueType( ValueType.TRUE_ONLY );
    assertNull( dataValueIsValid( "true", de ) );
    assertNull( dataValueIsValid( "TRUE", de ) );
    assertNotNull( dataValueIsValid( "false", de ) );
    de.setValueType( ValueType.DATE );
    assertNull( dataValueIsValid( "2013-04-01", de ) );
    assertNotNull( dataValueIsValid( "2012304-01", de ) );
    assertNotNull( dataValueIsValid( "Date", de ) );
    de.setValueType( ValueType.DATETIME );
    assertNull( dataValueIsValid( "2013-04-01T11:00:00.000Z", de ) );
    assertNotNull( dataValueIsValid( "2013-04-01", de ) );
    assertNotNull( dataValueIsValid( "abcd", de ) );
}