[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
This commit is contained in:
Gary D. Gregory 2004-02-17 00:55:57 +00:00
parent 0b92157846
commit ebebaf310b
1 changed files with 34 additions and 9 deletions

View File

@ -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 <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
* @author <a href="mailto:ridesmet@users.sourceforge.net">Ringo De Smet</a>
* @author <a href="mailto:ggregory@seagullsw.com">Gary Gregory</a>
* @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() {