1 // 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html#License 3 /* 4 ******************************************************************************* 5 * Copyright (C) 2006-2011, International Business Machines Corporation and * 6 * others. All Rights Reserved. * 7 ******************************************************************************* 8 */ 9 10 package com.ibm.icu.tests; 11 12 import java.util.Date; 13 import java.util.Locale; 14 15 import com.ibm.icu.util.Calendar; 16 import com.ibm.icu.util.TimeZone; 17 import com.ibm.icu.util.ULocale; 18 19 public class TimeZoneTest extends ICUTestCase { 20 21 /* 22 * Test method for 'com.ibm.icu.util.TimeZone.hashCode()' 23 */ 24 public void testHashCode() { 25 TimeZone tz1 = TimeZone.getTimeZone("PST"); 26 TimeZone tz2 = TimeZone.getTimeZone("PST"); 27 TimeZone tzn = TimeZone.getTimeZone("CST"); 28 testEHCS(tz1, tz2, tzn); 29 } 30 31 /* 32 * Test method for 'com.ibm.icu.util.TimeZone.TimeZone(TimeZone)' 33 */ 34 public void testTimeZone() { 35 // implicitly tested everywhere 36 } 37 38 /* 39 * Test method for 'com.ibm.icu.util.TimeZone.getOffset(int, int, int, int, int, int)' 40 */ 41 public void testGetOffset() { 42 TimeZone tz = TimeZone.getTimeZone("PST"); 43 int offset = tz.getOffset(1, 2004, 0, 01, 1, 0); 44 assertEquals(-28800000, offset); 45 } 46 47 /* 48 * Test method for 'com.ibm.icu.util.TimeZone.setRawOffset(int)' 49 */ 50 public void testSetRawOffset() { 51 TimeZone tz = TimeZone.getTimeZone("PST"); 52 int value = tz.getRawOffset(); 53 int value1 = value + 100000; 54 tz.setRawOffset(value1); 55 int result = tz.getRawOffset(); 56 assertNotEqual(value, result); 57 assertEquals(value1, result); 58 } 59 60 /* 61 * Test method for 'com.ibm.icu.util.TimeZone.getRawOffset()' 62 */ 63 public void testGetRawOffset() { 64 TimeZone tz = TimeZone.getTimeZone("PST"); 65 int offset = tz.getRawOffset(); 66 assertEquals(-28800000, offset); 67 } 68 69 /* 70 * Test method for 'com.ibm.icu.util.TimeZone.getID()' 71 */ 72 public void testGetID() { 73 TimeZone tz = TimeZone.getTimeZone("PST"); 74 assertEquals("PST", tz.getID()); 75 } 76 77 /* 78 * Test method for 'com.ibm.icu.util.TimeZone.setID(String)' 79 */ 80 public void testSetID() { 81 TimeZone tz = TimeZone.getTimeZone("PST"); 82 String value1 = tz.getID(); 83 String value2 = value1 + "!"; 84 tz.setID(value2); 85 String result = tz.getID(); 86 assertNotEqual(value1, result); 87 assertEquals(value2, result); 88 } 89 90 /* 91 * Test method for 'com.ibm.icu.util.TimeZone.getDisplayName()' 92 */ 93 public void testGetDisplayName() { 94 TimeZone tz = TimeZone.getTimeZone("PST"); 95 assertEquals("Pacific Standard Time", tz.getDisplayName()); 96 } 97 98 /* 99 * Test method for 'com.ibm.icu.util.TimeZone.getDisplayName(Locale)' 100 */ 101 public void testGetDisplayNameLocale() { 102 TimeZone tz = TimeZone.getTimeZone("PST"); 103 assertEquals("Pacific Standard Time", tz.getDisplayName(Locale.US)); 104 } 105 106 /* 107 * Test method for 'com.ibm.icu.util.TimeZone.getDisplayName(ULocale)' 108 */ 109 public void testGetDisplayNameULocale() { 110 TimeZone tz = TimeZone.getTimeZone("PST"); 111 assertEquals("Pacific Standard Time", tz.getDisplayName(ULocale.US)); 112 } 113 114 /* 115 * Test method for 'com.ibm.icu.util.TimeZone.getDisplayName(boolean, int)' 116 */ 117 public void testGetDisplayNameBooleanInt() { 118 TimeZone tz = TimeZone.getTimeZone("PST"); 119 assertEquals("PDT", tz.getDisplayName(true, TimeZone.SHORT)); 120 assertEquals("Pacific Daylight Time", tz.getDisplayName(true, TimeZone.LONG)); 121 } 122 123 /* 124 * Test method for 'com.ibm.icu.util.TimeZone.getDisplayName(boolean, int, Locale)' 125 */ 126 public void testGetDisplayNameBooleanIntLocale() { 127 TimeZone tz = TimeZone.getTimeZone("PST"); 128 assertEquals("PDT", tz.getDisplayName(true, TimeZone.SHORT, Locale.US)); 129 assertEquals("Pacific Daylight Time", tz.getDisplayName(true, TimeZone.LONG, Locale.US)); 130 } 131 132 /* 133 * Test method for 'com.ibm.icu.util.TimeZone.getDisplayName(boolean, int, ULocale)' 134 */ 135 public void testGetDisplayNameBooleanIntULocale() { 136 TimeZone tz = TimeZone.getTimeZone("PST"); 137 assertEquals("PDT", tz.getDisplayName(true, TimeZone.SHORT, ULocale.US)); 138 assertEquals("Pacific Daylight Time", tz.getDisplayName(true, TimeZone.LONG, ULocale.US)); 139 } 140 141 /* 142 * Test method for 'com.ibm.icu.util.TimeZone.getDSTSavings()' 143 */ 144 public void testGetDSTSavings() { 145 TimeZone tz = TimeZone.getTimeZone("PST"); 146 assertEquals(3600000, tz.getDSTSavings()); 147 } 148 149 /* 150 * Test method for 'com.ibm.icu.util.TimeZone.useDaylightTime()' 151 */ 152 public void testUseDaylightTime() { 153 TimeZone tz = TimeZone.getTimeZone("PST"); 154 assertTrue(tz.useDaylightTime()); 155 } 156 157 /* 158 * Test method for 'com.ibm.icu.util.TimeZone.inDaylightTime(Date)' 159 */ 160 public void testInDaylightTime() { 161 TimeZone tz = TimeZone.getTimeZone("PST"); 162 Calendar cal = Calendar.getInstance(); 163 cal.set(2005, 0, 17); 164 Date date = cal.getTime(); 165 assertFalse(tz.inDaylightTime(date)); 166 cal.set(2005, 6, 17); 167 date = cal.getTime(); 168 assertTrue(tz.inDaylightTime(date)); 169 } 170 171 /* 172 * Test method for 'com.ibm.icu.util.TimeZone.getTimeZone(String)' 173 */ 174 public void testGetTimeZone() { 175 // implicitly tested everywhere 176 } 177 178 /* 179 * Test method for 'com.ibm.icu.util.TimeZone.getAvailableIDs(int)' 180 */ 181 public void testGetAvailableIDsInt() { 182 String[] ids = TimeZone.getAvailableIDs(-28800000); 183 assertNotNull(ids); 184 } 185 186 /* 187 * Test method for 'com.ibm.icu.util.TimeZone.getAvailableIDs()' 188 */ 189 public void testGetAvailableIDs() { 190 String[] ids = TimeZone.getAvailableIDs(); 191 assertNotNull(ids); 192 } 193 194 /* 195 * Test method for 'com.ibm.icu.util.TimeZone.getDefault()' 196 */ 197 public void testGetDefault() { 198 TimeZone tz = TimeZone.getDefault(); 199 assertNotNull(tz); 200 } 201 202 /* 203 * Test method for 'com.ibm.icu.util.TimeZone.setDefault(TimeZone)' 204 */ 205 public void testSetDefault() { 206 TimeZone tz1 = TimeZone.getDefault(); 207 String newCode = "PDT".equals(tz1.getID()) ? "CST" : "PDT"; 208 TimeZone tz2 = TimeZone.getTimeZone(newCode); 209 TimeZone.setDefault(tz2); 210 TimeZone result = TimeZone.getDefault(); 211 assertNotEqual(tz1, result); 212 assertEquals(tz2, result); 213 } 214 215 /* 216 * Test method for 'com.ibm.icu.util.TimeZone.hasSameRules(TimeZone)' 217 */ 218 public void testHasSameRules() { 219 TimeZone tz1 = TimeZone.getTimeZone("PST"); 220 TimeZone tz2 = TimeZone.getTimeZone("America/Los_Angeles"); 221 assertTrue(tz1.hasSameRules(tz2)); 222 } 223 224 /* 225 * Test method for 'com.ibm.icu.util.TimeZone.clone()' 226 */ 227 public void testClone() { 228 // tested by testHashCode 229 } 230 231 /* 232 * Test method for 'com.ibm.icu.util.TimeZone.equals(Object)' 233 */ 234 public void testEqualsObject() { 235 // tested by testHashCode 236 } 237 } 238