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