Author: frankb
Date: Tue Jul 25 09:53:41 2006
New Revision: 425456

URL: http://svn.apache.org/viewvc?rev=425456&view=rev
Log:
Add TypeRoundTripTestCase Date type test

Modified:
    
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
    
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
    
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTestCase.java

Modified: 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java?rev=425456&r1=425455&r2=425456&view=diff
==============================================================================
--- 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
 (original)
+++ 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
 Tue Jul 25 09:53:41 2006
@@ -20,6 +20,7 @@
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.Locale;
+import java.util.TimeZone;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -33,7 +34,7 @@
 public class DataHelperImpl implements DataHelper
 {
   /**
-   * @param dateString - Must comply to the pattern of 
yyyy-MM-dd'T'HH:mm:ss'.'SSS Z
+   * @param dateString - Must comply to the pattern of 
yyyy-MM-dd'T'HH:mm:ss'.'SSS'Z'
    * @return null if dataString couldn't be parsed
    */
   public synchronized Date toDate(String dateString)
@@ -43,9 +44,17 @@
       return null;
     }
     
+    DateFormat sdoDateFormat = new 
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS'Z'");
+    sdoDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
+    try {
+      return sdoDateFormat.parse(dateString);
+    }
+    catch (ParseException parseException)
+    {
+    }
+    
     DateFormat [] DATE_PATTERNS =
     {
-      new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS Z"),
       new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS"),
       new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"),
       new SimpleDateFormat("yyyy-MM-dd'T'HH:mm"),

Modified: 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java?rev=425456&r1=425455&r2=425456&view=diff
==============================================================================
--- 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
 (original)
+++ 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
 Tue Jul 25 09:53:41 2006
@@ -18,8 +18,10 @@
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.TimeZone;
 
 import org.apache.tuscany.sdo.SDOFactory;
 import org.apache.tuscany.sdo.model.ChangeSummaryType;
@@ -530,8 +532,15 @@
    */
   public String convertDateToString(EDataType eDataType, Object instanceValue)
   {
-    // return XMLTypeFactory.eINSTANCE.convertDate(instanceValue);
-    return DataHelper.INSTANCE.toDateTime((Date)instanceValue);
+    if (instanceValue == null)
+    {
+      return null;
+    }
+    
+    SimpleDateFormat f = new 
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS'Z'");
+    f.setTimeZone(TimeZone.getTimeZone("GMT"));
+    
+    return f.format((Date)instanceValue);
   }
 
   /**

Modified: 
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTestCase.java?rev=425456&r1=425455&r2=425456&view=diff
==============================================================================
--- 
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTestCase.java
 (original)
+++ 
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTestCase.java
 Tue Jul 25 09:53:41 2006
@@ -16,19 +16,18 @@
  */
 package org.apache.tuscany.sdo.test;
 
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sdo.util.SDOUtil;
-
 import java.math.BigDecimal;
 import java.math.BigInteger;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Comparator;
-import java.util.Date;
 import java.util.List;
 
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
 import commonj.sdo.Type;
+import commonj.sdo.helper.DataHelper;
 import commonj.sdo.helper.TypeHelper;
 
 public class TypeRoundTripTestCase extends TestCase {
@@ -84,26 +83,10 @@
     }
   }
   
-  private static class DateComparator implements Comparator {
-    public int compare(Object o1, Object o2) {
-      int answer = 1;
-      try {
-        if (o1 instanceof String && o2 instanceof Date) {
-          SimpleDateFormat sdf = 
-            new SimpleDateFormat("yyyy-MM-dd'Z'");
-          o1 = sdf.parse((String)o1);
-          if (!o1.equals(o2)) answer = 0; 
-        } else {
-          answer = 0;
-        }
-      } catch (Exception e) {}
-      return answer;
-    }
-  }
-  
   public void testTypeRoundTrips() throws Exception {
     String URI = "commonj.sdo";
     TypeHelper types = TypeHelper.INSTANCE;
+    
     List list = new ArrayList();
     list.add("foo");
     list.add("bar");
@@ -113,8 +96,8 @@
       new Test(types.getType(URI, "Byte"),         "49", new Byte((byte)49)),
       new Test(types.getType(URI, "Bytes"),        "Zm9v", "foo", new 
BytesComparator()),
       new Test(types.getType(URI, "Character"),    "a", new Character('a')),
-      //FB broken ... new Test(types.getType(URI, "Date"),         
"2005-12-12Z", "2005-12-12Z", new DateComparator()),
-      new Test(types.getType(URI, "DateTime"),     "2005-12-12T12:12:12Z", 
"2005-12-12T12:12:12Z"),
+      new Test(types.getType(URI, "Date"),         "2005-12-12T12:12:12.012Z", 
DataHelper.INSTANCE.toDate("2005-12-12T12:12:12.012Z")),
+      new Test(types.getType(URI, "DateTime"),     "2005-12-12T12:12:12zz", 
"2005-12-12T12:12:12zz"),
       new Test(types.getType(URI, "Day"),          "---12", "---12"),
       new Test(types.getType(URI, "Decimal"),      "12.12", new 
BigDecimal("12.12")),
       new Test(types.getType(URI, "Double"),       "12.12", new Double(12.12)),



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to