TimeZoneTest.java revision 89c1feb0a69a7707b271086e749975b3f7acacf7
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18package tests.api.java.util; 19 20import dalvik.annotation.TestTarget; 21import dalvik.annotation.TestInfo; 22import dalvik.annotation.TestLevel; 23import dalvik.annotation.TestTargetClass; 24 25import java.util.Calendar; 26import java.util.GregorianCalendar; 27import java.util.SimpleTimeZone; 28import java.util.TimeZone; 29 30import tests.support.Support_TimeZone; 31 32@TestTargetClass(TimeZone.class) 33public class TimeZoneTest extends junit.framework.TestCase { 34 35 private static final int ONE_HOUR = 3600000; 36 37 /** 38 * @tests java.util.TimeZone#getDefault() 39 */ 40 @TestInfo( 41 level = TestLevel.COMPLETE, 42 purpose = "", 43 targets = { 44 @TestTarget( 45 methodName = "getDefault", 46 methodArgs = {} 47 ) 48 }) 49 public void test_getDefault() { 50 assertNotSame("returns identical", 51 TimeZone.getDefault(), TimeZone.getDefault()); 52 } 53 54 /** 55 * @tests java.util.TimeZone#getDSTSavings() 56 */ 57 @TestInfo( 58 level = TestLevel.COMPLETE, 59 purpose = "", 60 targets = { 61 @TestTarget( 62 methodName = "getDSTSavings", 63 methodArgs = {} 64 ) 65 }) 66 public void _test_getDSTSavings() { 67 // Test for method int java.util.TimeZone.getDSTSavings() 68 69 // test on subclass SimpleTimeZone 70 TimeZone st1 = TimeZone.getTimeZone("EST"); 71 assertEquals("T1A. Incorrect daylight savings returned", 72 ONE_HOUR, st1.getDSTSavings()); 73 74 // a SimpleTimeZone with daylight savings different then 1 hour 75 st1 = TimeZone.getTimeZone("Australia/Lord_Howe"); 76 assertEquals("T1B. Incorrect daylight savings returned", 77 1800000, st1.getDSTSavings()); 78 79 // test on subclass Support_TimeZone, an instance with daylight savings 80 TimeZone tz1 = new Support_TimeZone(-5 * ONE_HOUR, true); 81 assertEquals("T2. Incorrect daylight savings returned", 82 ONE_HOUR, tz1.getDSTSavings()); 83 84 // an instance without daylight savings 85 tz1 = new Support_TimeZone(3 * ONE_HOUR, false); 86 assertEquals("T3. Incorrect daylight savings returned, ", 87 0, tz1.getDSTSavings()); 88 } 89 90 /** 91 * @tests java.util.TimeZone#getOffset(long) 92 */ 93 @TestInfo( 94 level = TestLevel.COMPLETE, 95 purpose = "", 96 targets = { 97 @TestTarget( 98 methodName = "getOffset", 99 methodArgs = {long.class} 100 ) 101 }) 102 public void _test_getOffset_long() { 103 // Test for method int java.util.TimeZone.getOffset(long time) 104 105 // test on subclass SimpleTimeZone 106 TimeZone st1 = TimeZone.getTimeZone("EST"); 107 long time1 = new GregorianCalendar(1998, Calendar.NOVEMBER, 11) 108 .getTimeInMillis(); 109 assertEquals("T1. Incorrect offset returned", 110 -(5 * ONE_HOUR), st1.getOffset(time1)); 111 112 long time2 = new GregorianCalendar(1998, Calendar.JUNE, 11) 113 .getTimeInMillis(); 114 st1 = TimeZone.getTimeZone("EST"); 115 assertEquals("T2. Incorrect offset returned", 116 -(4 * ONE_HOUR), st1.getOffset(time2)); 117 118 // test on subclass Support_TimeZone, an instance with daylight savings 119 TimeZone tz1 = new Support_TimeZone(-5 * ONE_HOUR, true); 120 assertEquals("T3. Incorrect offset returned, ", 121 -(5 * ONE_HOUR), tz1.getOffset(time1)); 122 assertEquals("T4. Incorrect offset returned, ", 123 -(4 * ONE_HOUR), tz1.getOffset(time2)); 124 125 // an instance without daylight savings 126 tz1 = new Support_TimeZone(3 * ONE_HOUR, false); 127 assertEquals("T5. Incorrect offset returned, ", 128 (3 * ONE_HOUR), tz1.getOffset(time1)); 129 assertEquals("T6. Incorrect offset returned, ", 130 (3 * ONE_HOUR), tz1.getOffset(time2)); 131 } 132 133 /** 134 * @tests java.util.TimeZone#getTimeZone(java.lang.String) 135 */ 136 @TestInfo( 137 level = TestLevel.COMPLETE, 138 purpose = "", 139 targets = { 140 @TestTarget( 141 methodName = "getTimeZone", 142 methodArgs = {java.lang.String.class} 143 ) 144 }) 145 public void test_getTimeZoneLjava_lang_String() { 146 assertEquals("Must return GMT when given an invalid TimeZone id SMT-8.", 147 "GMT", TimeZone.getTimeZone("SMT-8").getID()); 148 assertEquals("Must return GMT when given an invalid TimeZone time GMT+28:70.", 149 "GMT", TimeZone.getTimeZone("GMT+28:70").getID()); 150 assertEquals("Must return GMT when given an invalid TimeZone time GMT+28:30.", 151 "GMT", TimeZone.getTimeZone("GMT+28:30").getID()); 152 assertEquals("Must return GMT when given an invalid TimeZone time GMT+8:70.", 153 "GMT", TimeZone.getTimeZone("GMT+8:70").getID()); 154 assertEquals("Must return GMT when given an invalid TimeZone time GMT+3:.", 155 "GMT", TimeZone.getTimeZone("GMT+3:").getID()); 156 assertEquals("Must return GMT when given an invalid TimeZone time GMT+3:0.", 157 "GMT", TimeZone.getTimeZone("GMT+3:0").getID()); 158 assertEquals("Must return GMT when given an invalid TimeZone time GMT+2360.", 159 "GMT", TimeZone.getTimeZone("GMT+2360").getID()); 160 assertEquals("Must return GMT when given an invalid TimeZone time GMT+892.", 161 "GMT", TimeZone.getTimeZone("GMT+892").getID()); 162 assertEquals("Must return GMT when given an invalid TimeZone time GMT+082.", 163 "GMT", TimeZone.getTimeZone("GMT+082").getID()); 164 assertEquals("Must return GMT when given an invalid TimeZone time GMT+28.", 165 "GMT", TimeZone.getTimeZone("GMT+28").getID()); 166 assertEquals("Must return GMT when given an invalid TimeZone time GMT+30.", 167 "GMT", TimeZone.getTimeZone("GMT+30").getID()); 168 assertEquals("Must return GMT when given TimeZone GMT.", 169 "GMT", TimeZone.getTimeZone("GMT").getID()); 170 assertEquals("Must return GMT when given TimeZone GMT+.", 171 "GMT", TimeZone.getTimeZone("GMT+").getID()); 172 assertEquals("Must return GMT when given TimeZone GMT-.", 173 "GMT", TimeZone.getTimeZone("GMT-").getID()); 174 assertEquals("Must return GMT when given an invalid TimeZone time GMT-8.45.", 175 "GMT", TimeZone.getTimeZone("GMT-8.45").getID()); 176 assertEquals("Must return GMT when given an invalid TimeZone time GMT-123:23.", 177 "GMT", TimeZone.getTimeZone("GMT-123:23").getID()); 178 assertEquals("Must return proper GMT formatted string for GMT+8:30 (eg. GMT+08:20).", 179 "GMT+08:30", TimeZone.getTimeZone("GMT+8:30").getID()); 180 assertEquals("Must return proper GMT formatted string for GMT+3 (eg. GMT+08:20).", 181 "GMT+03:00", TimeZone.getTimeZone("GMT+3").getID()); 182 assertEquals("Must return proper GMT formatted string for GMT+3:02 (eg. GMT+08:20).", 183 "GMT+03:02", TimeZone.getTimeZone("GMT+3:02").getID()); 184 assertEquals("Must return proper GMT formatted string for GMT+2359 (eg. GMT+08:20).", 185 "GMT+23:59", TimeZone.getTimeZone("GMT+2359").getID()); 186 assertEquals("Must return proper GMT formatted string for GMT+520 (eg. GMT+08:20).", 187 "GMT+05:20", TimeZone.getTimeZone("GMT+520").getID()); 188 assertEquals("Must return proper GMT formatted string for GMT+052 (eg. GMT+08:20).", 189 "GMT+00:52", TimeZone.getTimeZone("GMT+052").getID()); 190 assertEquals("Must return proper GMT formatted string for GMT-0 (eg. GMT+08:20).", 191 "GMT-00:00", TimeZone.getTimeZone("GMT-0").getID()); 192 } 193 194 /** 195 * @tests java.util.TimeZone#setDefault(java.util.TimeZone) 196 */ 197 @TestInfo( 198 level = TestLevel.COMPLETE, 199 purpose = "", 200 targets = { 201 @TestTarget( 202 methodName = "setDefault", 203 methodArgs = {java.util.TimeZone.class} 204 ) 205 }) 206 public void test_setDefaultLjava_util_TimeZone() { 207 TimeZone oldDefault = TimeZone.getDefault(); 208 TimeZone zone = new SimpleTimeZone(45, "TEST"); 209 TimeZone.setDefault(zone); 210 assertEquals("timezone not set", zone, TimeZone.getDefault()); 211 TimeZone.setDefault(null); 212 assertEquals("default not restored", 213 oldDefault, TimeZone.getDefault()); 214 } 215 216 protected void setUp() { 217 } 218 219 protected void tearDown() { 220 } 221} 222