postgresql-jdbc.git / summary / log / commit / refs

commit    d4b3242102f0dced89a346d42c1290225db7253e
Author:   Kris Jurka <books@ejurka.com>
Date:     Wed Apr 14 06:03:50 2004 +0000

    Fix failures in TimeTest for timezones ahead of GMT.  This produces a
    Time value before the epoch which came up with negative values.
    
    Oliver Jowett


org/postgresql/test/jdbc2/TimeTest.java | 36 ++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/org/postgresql/test/jdbc2/TimeTest.java b/org/postgresql/test/jdbc2/TimeTest.java index 792af925..5e4f3d20 100644 --- a/org/postgresql/test/jdbc2/TimeTest.java +++ b/org/postgresql/test/jdbc2/TimeTest.java @@ -36,6 +36,10 @@ public class TimeTest extends TestCase TestUtil.closeDB(con); } + private long extractMillis(long time) { + return (time >= 0) ? (time % 1000) : (time % 1000 + 1000); + } + /* * * Test use of calendar @@ -78,32 +82,32 @@ public class TimeTest extends TestCase time = rs.getTime(1); assertNotNull(time); - assertEquals(100, time.getTime() % 1000); + assertEquals(100, extractMillis(time.getTime())); timestamp = rs.getTimestamp(1); assertNotNull(timestamp); - // Pre 1.4 JVM's considered the nanos field completely separate - // and wouldn't return it in getTime() - if (TestUtil.haveMinimumJVMVersion("1.4")) { - assertEquals(100, timestamp.getTime() % 1000); - } else { - assertEquals(100, (timestamp.getTime() + timestamp.getNanos() / 1000000) % 1000); - } + // Pre 1.4 JVM's considered the nanos field completely separate + // and wouldn't return it in getTime() + if (TestUtil.haveMinimumJVMVersion("1.4")) { + assertEquals(100, extractMillis(timestamp.getTime())); + } else { + assertEquals(100, extractMillis(timestamp.getTime() + timestamp.getNanos() / 1000000)); + } assertEquals(100000000, timestamp.getNanos()); timetz = rs.getTime(2); assertNotNull(timetz); - assertEquals(10, timetz.getTime() % 1000); + assertEquals(10, extractMillis(timetz.getTime())); timestamptz = rs.getTimestamp(2); assertNotNull(timestamptz); - // Pre 1.4 JVM's considered the nanos field completely separate - // and wouldn't return it in getTime() - if (TestUtil.haveMinimumJVMVersion("1.4")) { - assertEquals(10, timestamptz.getTime() % 1000); - } else { - assertEquals(10, (timestamptz.getTime() + timestamptz.getNanos() / 1000000) % 1000); - } + // Pre 1.4 JVM's considered the nanos field completely separate + // and wouldn't return it in getTime() + if (TestUtil.haveMinimumJVMVersion("1.4")) { + assertEquals(10, extractMillis(timestamptz.getTime())); + } else { + assertEquals(10, extractMillis(timestamptz.getTime() + timestamptz.getNanos() / 1000000)); + } assertEquals(10000000, timestamptz.getNanos()); assertTrue(rs.next()); [parent: ce7d9d7a5a0e]