package org.neo4j.meta.input.owl;
import java.text.ParseException;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
/**
* Tests date parsing.
*/
public class TestDateFormats extends TestCase
{
/**
* Tests standard xml date formats.
*/
public void testStandardXmlDateTimeFormats()
{
Map<String, List<String>> dates = new HashMap<String, List<String>>();
dates.put( RdfUtil.NS_XML_SCHEMA + "dateTime", Arrays.asList(
"2007-09-14T20:43:10",
"2007-09-14T20:43:10Z",
"2007-09-14T20:43:10+02:00",
"2007-09-14T20:43:10.3",
"2007-09-14T20:43:10.3Z",
"2007-09-14T20:43:10.3-01:00",
"2007-09-14T20:43:10.42",
"2007-09-14T20:43:10.42Z",
"2007-09-14T20:43:10.42-01:00",
"2007-09-14T20:43:10.102",
"2007-09-14T20:43:10.102Z",
"2007-09-14T20:43:10.102-01:00" ) );
dates.put( RdfUtil.NS_XML_SCHEMA + "date", Arrays.asList(
"2007-09-14" ) );
try
{
for ( String format : dates.keySet() )
{
for ( String dateString : dates.get( format ) )
{
Object result = RdfUtil.getRealValue( format, dateString );
assertNotNull( result );
assertEquals( Date.class, result.getClass() );
Date date = ( Date ) result;
Calendar calendar = Calendar.getInstance();
calendar.setTime( date );
assertEquals( dateString, 2007,
calendar.get( Calendar.YEAR ) );
assertEquals( dateString, Calendar.SEPTEMBER,
calendar.get( Calendar.MONTH ) );
assertEquals( dateString, 14,
calendar.get( Calendar.DAY_OF_MONTH ) );
}
}
}
catch ( ParseException e )
{
fail( "Unable to parse: " + e.toString() );
}
}
public void testTimeFormat()
{
try
{
Date date = ( Date ) RdfUtil.getRealValue(
RdfUtil.NS_XML_SCHEMA + "time", "12:00:03" );
Calendar cal = Calendar.getInstance();
cal.setTime( date );
assertEquals( 12, cal.get( Calendar.HOUR_OF_DAY ) );
assertEquals( 0, cal.get( Calendar.MINUTE ) );
assertEquals( 3, cal.get( Calendar.SECOND ) );
date = ( Date ) RdfUtil.getRealValue(
RdfUtil.NS_XML_SCHEMA + "time", "20:32:12.146" );
cal.setTime( date );
assertEquals( 20, cal.get( Calendar.HOUR_OF_DAY ) );
assertEquals( 32, cal.get( Calendar.MINUTE ) );
assertEquals( 12, cal.get( Calendar.SECOND ) );
assertEquals( 146, cal.get( Calendar.MILLISECOND ) );
}
catch ( ParseException e )
{
fail( "Unable to parse " + e.toString() );
}
}
}