1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.sql.tests.java.sql; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.sql.Timestamp; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Date; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TimeZone; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * JUnit Testcase for the java.sql.Timestamp class 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class TimestampTest extends TestCase { 338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath static class MockTimestamp extends Timestamp { 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private String holiday; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public MockTimestamp(long theTime) { 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(theTime); 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes holiday = "Christmas"; 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Constructor should not call this public API, 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // since it may be overrided to use variables uninitialized. 448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void setTime(long theTime) { 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super.setTime(theTime); 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes holiday.hashCode(); 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static long TIME_TEST1 = 38720231; // 10:45:20.231 GMT 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static long TIME_TEST2 = 80279000; // 22:17:59.000 GMT 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static long TIME_TEST3 = -38720691; // 13:14:39.309 GMT 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static long TIME_COMPARE = 123498845; 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static long TIME_EARLY = -2347889122L;// A time well before the Epoch 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static long TIME_LATE = 2347889122L; // A time well after the Epoch 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String STRING_TEST1 = "1970-01-01 10:45:20.231"; // "1970-01-01 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 10:45:20.231000000"; 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String STRING_TEST2 = "1970-01-01 22:17:59.0"; // "1970-01-01 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 22:17:59.000000000"; 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String STRING_TEST3 = "1969-12-31 13:14:39.309"; // "1969-12-31 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 13:14:39.309000000"; 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String STRING_INVALID1 = "ABCDEFGHI"; 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String STRING_INVALID2 = "233104"; 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String STRING_INVALID3 = "21-43-48"; 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // A timepoint in the correct format but with numeric values out of range 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ...this is accepted despite being a crazy date specification 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ...it is treated as the correct format date 3000-06-08 12:40:06.875 !! 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String STRING_OUTRANGE = "2999-15-99 35:99:66.875"; 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static long[] TIME_ARRAY = { TIME_TEST1, TIME_TEST2, TIME_TEST3 }; 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] YEAR_ARRAY = { 70, 70, 69 }; 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] MONTH_ARRAY = { 0, 0, 11 }; 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] DATE_ARRAY = { 1, 1, 31 }; 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] HOURS_ARRAY = { 10, 22, 13 }; 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] MINUTES_ARRAY = { 45, 17, 14 }; 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] SECONDS_ARRAY = { 20, 59, 39 }; 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] NANOS_ARRAY = { 231000000, 000000000, 309000000 }; 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static int[] NANOS_ARRAY2 = { 137891990, 635665198, 109985421 }; 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String[] STRING_NANOS_ARRAY = { "1970-01-01 10:45:20.13789199", 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1970-01-01 22:17:59.635665198", "1969-12-31 13:14:39.109985421" }; 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String[] STRING_GMT_ARRAY = { STRING_TEST1, STRING_TEST2, 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes STRING_TEST3 }; 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String[] STRING_LA_ARRAY = { "02:45:20", "14:17:59", "05:14:40" }; 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String[] STRING_JP_ARRAY = { "19:45:20", "07:17:59", "22:14:40" }; 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String[] INVALID_STRINGS = { STRING_INVALID1, STRING_INVALID2, 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes STRING_INVALID3 }; 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Timezones 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String TZ_LONDON = "GMT"; // GMT (!) PS London != GMT (?!?) 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String TZ_PACIFIC = "America/Los_Angeles"; // GMT - 8 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String TZ_JAPAN = "Asia/Tokyo"; // GMT + 9 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String[] TIMEZONES = { TZ_LONDON, TZ_PACIFIC, TZ_JAPAN }; 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String[][] STRING_ARRAYS = { STRING_GMT_ARRAY, STRING_LA_ARRAY, 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes STRING_JP_ARRAY }; 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test ToString 1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath static String[][] STRING_TIMESTAMP_ARRAYS = { 1308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath STRING_GMT_ARRAY, 1318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new String[] { "1970-01-01 02:45:20.231", "1970-01-01 14:17:59.0", 1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "1969-12-31 05:14:39.309" }, 1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new String[] { "1970-01-01 19:45:20.231", "1970-01-02 07:17:59.0", "1969-12-31 22:14:39.309" } }; 1348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 1368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Constructor test 1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testTimestamplong() { 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_TEST1); 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // The Timestamp should have been created 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(theTimestamp); 1428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp mockTimestamp = new MockTimestamp(TIME_TEST1); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(theTimestamp); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testTimestamplong 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Constructor test 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testTimestampintintintintintintint() { 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int[][] valid = { { 99, 2, 14, 17, 52, 3, 213577212 }, // 0 valid 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 0, 0, 1, 0, 0, 0, 0 }, // 1 valid 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, 23, 59, 59, 999999999 }, // 2 valid 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, 23, 59, 61, 999999999 }, // 5 Seconds out of 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // range 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, 23, 59, -1, 999999999 }, // 6 Seconds out of 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // range 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, 23, 61, 59, 999999999 }, // 7 Minutes out of 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // range 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, 23, -1, 59, 999999999 }, // 8 Minutes out of 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // range 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, 25, 59, 59, 999999999 }, // 9 Hours out of range 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, -1, 59, 59, 999999999 }, // 10 Hours out of range 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 35, 23, 59, 59, 999999999 }, // 11 Days out of range 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, -1, 23, 59, 59, 999999999 }, // 12 Days out of range 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 15, 31, 23, 59, 59, 999999999 }, // 13 Months out of 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // range 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, -1, 31, 23, 59, 59, 999999999 }, // 14 Months out of 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // range 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { -10, 11, 31, 23, 59, 59, 999999999 }, // 15 valid - Years 1728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // negative 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int[] element : valid) { 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element[0], element[1], 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes element[2], element[3], element[4], element[5], element[6]); 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("Timestamp not generated: ", theTimestamp); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int[][] invalid = { { 106, 11, 31, 23, 59, 59, 1999999999 }, 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 106, 11, 31, 23, 59, 59, -999999999 }, }; 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int[] element : invalid) { 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Timestamp(element[0], element[1], element[2], element[3], 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes element[4], element[5], element[6]); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testTimestampintintintintintintint 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for setTime 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetTimelong() { 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // First set the timezone to GMT 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_TEST1); 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTimestamp.setTime(TIME_ARRAY[i]); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(TIME_ARRAY[i], theTimestamp.getTime()); 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(NANOS_ARRAY[i], theTimestamp.getNanos()); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testsetTimelong 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for getTime 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetTime() { 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // First set the timezone to GMT 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(element, theTimestamp.getTime()); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetTime 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for getYear 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetYear() { 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(YEAR_ARRAY[i], theTimestamp.getYear()); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetYear 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for getMonth 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetMonth() { 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(MONTH_ARRAY[i], theTimestamp.getMonth()); 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetMonth 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for getDate 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetDate() { 2568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(DATE_ARRAY[i], theTimestamp.getDate()); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetDate 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for getHours 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetHours() { 2698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(HOURS_ARRAY[i], theTimestamp.getHours()); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetHours 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for getMinutes 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetMinutes() { 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(MINUTES_ARRAY[i], theTimestamp.getMinutes()); 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetMinutes 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for getSeconds 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetSeconds() { 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SECONDS_ARRAY[i], theTimestamp.getSeconds()); 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetSeconds 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for valueOf 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static String theExceptionMessage = "Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff"; 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testValueOfString() { 3098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp2 = Timestamp.valueOf(STRING_GMT_ARRAY[i]); 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(theTimestamp, theTimestamp2); 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for a string in correct format but with number values out of 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // range 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = Timestamp.valueOf(STRING_OUTRANGE); 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(theTimestamp); 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * System.out.println("testValueOfString: outrange timestamp: " + 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * theTimestamp.toString() ); 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (String element : INVALID_STRINGS) { 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp.valueOf(element); 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException."); 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end try 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testvalueOfString 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for valueOf 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testValueOfString1() { 3418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 3428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theReturn; 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] theReturnTime = { 38720231, 38720231, 80279000, -38720691, 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 38720000 }; 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int[] theReturnNanos = { 231000000, 231987654, 0, 309000000, 0, }; 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String[] valid = { "1970-01-01 10:45:20.231", 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1970-01-01 10:45:20.231987654", "1970-01-01 22:17:59.0", 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1969-12-31 13:14:39.309", "1970-01-01 10:45:20", }; 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String[] invalid = { null, "ABCDEFGHI", "233104", 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1970-01-01 22:17:59.", 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1970-01-01 10:45:20.231987654690645322", 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1970-01-01 10:45:20&231987654", 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1970-01-01 10:45:20.-31987654", 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1970-01-01 10:45:20.ABCD87654", "21-43-48", }; 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < valid.length; i++) { 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theReturn = Timestamp.valueOf(valid[i]); 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(theReturnTime[i], theReturn.getTime()); 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(theReturnNanos[i], theReturn.getNanos()); 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (String element : invalid) { 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theReturn = Timestamp.valueOf(element); 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException."); 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for HARMONY-5506 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String date = "1970-01-01 22:17:59.0 "; 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp t = Timestamp.valueOf(date); 3768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals(80279000, t.getTime()); 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testValueOfString 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testValueOf_IAE() { 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes java.sql.Timestamp.valueOf("2008-12-22 15:00:01."); 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IllegalArgumentException"); 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // bug of RI 5, passed on RI 6 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes java.sql.Timestamp.valueOf("178548938-12-22 15:00:01.000000001"); 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IllegalArgumentException"); 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes java.sql.Timestamp.valueOf("2008-12-22 15:00:01.0000000011"); 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IllegalArgumentException"); 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for toString 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testToString() { 4088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath for (int i = 0; i < TIME_ARRAY.length; i++) { 4098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath testToString(TIMEZONES[i], TIME_ARRAY, STRING_TIMESTAMP_ARRAYS[i]); 4108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } // end for 4118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 4128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 4148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Timestamp t1 = new Timestamp(Long.MIN_VALUE); 4158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("292278994-08-17 07:12:55.192", t1.toString()); //$NON-NLS-1$ 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 4178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Timestamp t2 = new Timestamp(Long.MIN_VALUE + 1); 4188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("292278994-08-17 07:12:55.193", t2.toString()); //$NON-NLS-1$ 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 4208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Timestamp t3 = new Timestamp(Long.MIN_VALUE + 807); 4218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("292278994-08-17 07:12:55.999", t3.toString()); //$NON-NLS-1$ 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 4238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Timestamp t4 = new Timestamp(Long.MIN_VALUE + 808); 4248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("292269055-12-02 16:47:05.0", t4.toString()); //$NON-NLS-1$ 4258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } // end method testtoString 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void testToString(String timeZone, long[] theTimeStamps, String[] theTimeStampStrings) { 4288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(TimeZone.getTimeZone(timeZone)); 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(theTimeStamps[i]); 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(theTimeStampStrings[i], theTimestamp.toString()); 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 4338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 4358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 4378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Method test for getNanos 4388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetNanos() { 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(NANOS_ARRAY[i], theTimestamp.getNanos()); 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testgetNanos 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for setNanos 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSetNanosint() { 4518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(TimeZone.getTimeZone("GMT")); 4528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int[] NANOS_INVALID = { -137891990, 1635665198, -1 }; 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < TIME_ARRAY.length; i++) { 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTimestamp.setNanos(NANOS_ARRAY2[i]); 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(NANOS_ARRAY2[i], theTimestamp.getNanos()); 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Also check that these Timestamps with detailed nanos values 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // convert to 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // strings correctly 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(STRING_NANOS_ARRAY[i], theTimestamp.toString()); 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < NANOS_INVALID.length; i++) { 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[i]); 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int originalNanos = theTimestamp.getNanos(); 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTimestamp.setNanos(NANOS_INVALID[i]); 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end try 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(originalNanos, theTimestamp.getNanos()); 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testsetNanosint 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for equals 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testEqualsTimestamp() { 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp2 = new Timestamp(element); 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.equals(theTimestamp2)); 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTest = new Timestamp(TIME_COMPARE); 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(theTimestamp.equals(theTest)); 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-526 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(new Timestamp(0).equals((Timestamp) null)); 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testequalsTimestamp 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for equals 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testEqualsObject() { 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object theTimestamp2 = new Timestamp(element); 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.equals(theTimestamp2)); 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object theTest = new Timestamp(TIME_COMPARE); 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(theTimestamp.equals(theTest)); 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object nastyTest = new String("Test "); 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(TIME_ARRAY[1]); 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(theTimestamp.equals(nastyTest)); 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-526 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(new Timestamp(0).equals((Object) null)); 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testequalsObject 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for before 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testBeforeTimestamp() { 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTest = new Timestamp(TIME_LATE); 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.before(theTest)); 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTest = new Timestamp(TIME_EARLY); 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(theTimestamp.before(theTest)); 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTest = new Timestamp(element); 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(theTimestamp.before(theTest)); 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTest.setNanos(theTest.getNanos() + 1); 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.before(theTest)); 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testbeforeTimestamp 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for after 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAfterTimestamp() { 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTest = new Timestamp(TIME_LATE); 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(theTimestamp.after(theTest)); 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTest = new Timestamp(TIME_EARLY); 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.after(theTest)); 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTest = new Timestamp(element); 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(theTimestamp.after(theTest)); 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes theTimestamp.setNanos(theTimestamp.getNanos() + 1); 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.after(theTest)); 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testafterTimestamp 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Method test for compareTo 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("deprecation") 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCompareToTimestamp() { 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTest = new Timestamp(TIME_EARLY); 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTest2 = new Timestamp(TIME_LATE); 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp2 = new Timestamp(element); 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.compareTo(theTest) > 0); 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.compareTo(theTest2) < 0); 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, theTimestamp.compareTo(theTimestamp2)); 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp t1 = new Timestamp(-1L); 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp t2 = new Timestamp(-1L); 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes t1.setTime(Long.MIN_VALUE); 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes t2.setDate(Integer.MIN_VALUE); 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, t1.compareTo(t2)); 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, t2.compareTo(t1)); 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes t1.setTime(Long.MAX_VALUE); 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes t2.setTime(Long.MAX_VALUE - 1); 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, t1.compareTo(t2)); 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, t2.compareTo(t1)); 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes t1.setTime(Integer.MAX_VALUE); 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes t2.setTime(Integer.MAX_VALUE); 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, t1.compareTo(t2)); 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, t2.compareTo(t1)); 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testcompareToTimestamp 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.sql.Timestamp#compareTo(java.util.Date) 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCompareToDate() { 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date theTest = new Timestamp(TIME_EARLY); 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date theTest2 = new Timestamp(TIME_LATE); 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (long element : TIME_ARRAY) { 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp theTimestamp = new Timestamp(element); 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date theTimestamp2 = new Timestamp(element); 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.compareTo(theTest) > 0); 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(theTimestamp.compareTo(theTest2) < 0); 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, theTimestamp.compareTo(theTimestamp2)); 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end for 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp timestamp = new Timestamp(1000000); 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date = new Date(1000000); 6488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, timestamp.compareTo(date)); 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes timestamp.setNanos(10); 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, timestamp.compareTo(date)); 6528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long time = System.currentTimeMillis(); 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Date date2 = new Date(time); 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp timestamp2 = new Timestamp(date2.getTime()); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, timestamp2.compareTo(date2)); 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } // end method testcompareToObject 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests serialization/deserialization compatibility. 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSerializationSelf() throws Exception { 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp object = new Timestamp(100L); 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SerializationTest.verifySelf(object); 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests serialization/deserialization compatibility with RI. 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSerializationCompatibility() throws Exception { 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Timestamp object = new Timestamp(100L); 672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SerializationTest.verifyGolden(this, object); 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Reset defualt timezone 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TimeZone defaultTimeZone = TimeZone.getDefault(); 6778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 6788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath protected void tearDown() { 6798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TimeZone.setDefault(defaultTimeZone); 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests overriding Timestamp to create an immutable class. 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testOverridingTimestamp() { 6868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Timestamp ts = new Timestamp(8392418) { 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void setNanos(int n) { 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throw new RuntimeException("Overridden method shouldn't be called"); 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} // end class TimestampTest 694