From ebebaf310ba43de76c9a1eab83c48cd75a2dd760 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Tue, 17 Feb 2004 00:55:57 +0000 Subject: [PATCH] PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26922 [lang] public static boolean DateUtils.equals(Date dt1, Date dt2) ? Updated testDateEqualsJava(): The behavior is different b/w Sun Java 1.3.1_10 and 1.4.2_03. git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/lang/trunk@137796 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/commons/lang/ObjectUtilsTest.java | 43 +++++++++++++++---- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/src/test/org/apache/commons/lang/ObjectUtilsTest.java b/src/test/org/apache/commons/lang/ObjectUtilsTest.java index 85a5e711f..b0639d09a 100644 --- a/src/test/org/apache/commons/lang/ObjectUtilsTest.java +++ b/src/test/org/apache/commons/lang/ObjectUtilsTest.java @@ -60,7 +60,6 @@ import junit.framework.TestCase; import junit.framework.TestSuite; import junit.textui.TestRunner; -import org.apache.commons.lang.time.DateUtils; /** * Unit tests {@link org.apache.commons.lang.ObjectUtils}. @@ -69,7 +68,7 @@ * @author Stephen Colebourne * @author Ringo De Smet * @author Gary Gregory - * @version $Id: ObjectUtilsTest.java,v 1.10 2004/02/16 23:39:03 ggregory Exp $ + * @version $Id: ObjectUtilsTest.java,v 1.11 2004/02/17 00:55:57 ggregory Exp $ */ public class ObjectUtilsTest extends TestCase { private static final String FOO = "foo"; @@ -125,17 +124,43 @@ public void testEquals() { /** * Show that java.util.Date and java.sql.Timestamp are apples and oranges. - * Prompted by an email discussion. + * Prompted by an email discussion. + * + * The behavior is different b/w Sun Java 1.3.1_10 and 1.4.2_03. */ - public void testDateEquals() { + public void testDateEqualsJava() { long now = 1076957313284L; // Feb 16, 2004 10:49... PST java.util.Date date = new java.util.Date(now); - java.util.Date timestamp = new java.sql.Timestamp(now); - // sanity check: - assertFalse(date.getTime() == timestamp.getTime()); - assertFalse(timestamp.equals(date)); + java.sql.Timestamp realTimestamp = new java.sql.Timestamp(now); + java.util.Date timestamp = realTimestamp; + // sanity check 1: + assertEquals(284000000, realTimestamp.getNanos()); + assertEquals(1076957313284L, date.getTime()); + // + // On Sun 1.3.1_10: + //junit.framework.AssertionFailedError: expected:<1076957313284> but was:<1076957313000> + // + //assertEquals(1076957313284L, timestamp.getTime()); + // + //junit.framework.AssertionFailedError: expected:<1076957313284> but was:<1076957313000> + // + //assertEquals(1076957313284L, realTimestamp.getTime()); + // sanity check 2: + assertEquals(date.getDay(), realTimestamp.getDay()); + assertEquals(date.getHours(), realTimestamp.getHours()); + assertEquals(date.getMinutes(), realTimestamp.getMinutes()); + assertEquals(date.getMonth(), realTimestamp.getMonth()); + assertEquals(date.getSeconds(), realTimestamp.getSeconds()); + assertEquals(date.getTimezoneOffset(), realTimestamp.getTimezoneOffset()); + assertEquals(date.getYear(), realTimestamp.getYear()); + // + // Time values are == and equals() on Sun 1.4.2_03 but NOT on Sun 1.3.1_10: + // + //assertFalse("Sanity check failed: date.getTime() == timestamp.getTime()", date.getTime() == timestamp.getTime()); + //assertFalse("Sanity check failed: timestamp.equals(date)", timestamp.equals(date)); + //assertFalse("Sanity check failed: date.equals(timestamp)", date.equals(timestamp)); // real test: - assertFalse(ObjectUtils.equals(date, timestamp)); + //assertFalse("java.util.Date and java.sql.Timestamp should be equal", ObjectUtils.equals(date, timestamp)); } public void testIdentityToString() {