1 16 package org.joda.time; 17 18 import java.util.Locale ; 19 import java.util.TimeZone ; 20 21 import junit.framework.TestCase; 22 import junit.framework.TestSuite; 23 24 import org.joda.time.chrono.BuddhistChronology; 25 import org.joda.time.chrono.GregorianChronology; 26 import org.joda.time.chrono.ISOChronology; 27 28 33 public class TestMutableDateTime_Sets extends TestCase { 34 37 private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris"); 38 private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London"); 39 40 long y2002days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 41 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 42 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 43 366 + 365; 44 long y2003days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 45 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 46 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 47 366 + 365 + 365; 48 49 private long TEST_TIME_NOW = 51 (y2002days + 31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY; 52 53 private long TEST_TIME1 = 55 (y2002days + 31L + 28L + 31L + 5L -1L) * DateTimeConstants.MILLIS_PER_DAY 56 + 12L * DateTimeConstants.MILLIS_PER_HOUR 57 + 24L * DateTimeConstants.MILLIS_PER_MINUTE; 58 59 private long TEST_TIME2 = 61 (y2003days + 31L + 28L + 31L + 30L + 6L -1L) * DateTimeConstants.MILLIS_PER_DAY 62 + 14L * DateTimeConstants.MILLIS_PER_HOUR 63 + 28L * DateTimeConstants.MILLIS_PER_MINUTE; 64 65 private DateTimeZone originalDateTimeZone = null; 66 private TimeZone originalTimeZone = null; 67 private Locale originalLocale = null; 68 69 public static void main(String [] args) { 70 junit.textui.TestRunner.run(suite()); 71 } 72 73 public static TestSuite suite() { 74 return new TestSuite(TestMutableDateTime_Sets.class); 75 } 76 77 public TestMutableDateTime_Sets(String name) { 78 super(name); 79 } 80 81 protected void setUp() throws Exception { 82 DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW); 83 originalDateTimeZone = DateTimeZone.getDefault(); 84 originalTimeZone = TimeZone.getDefault(); 85 originalLocale = Locale.getDefault(); 86 DateTimeZone.setDefault(LONDON); 87 TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); 88 Locale.setDefault(Locale.UK); 89 } 90 91 protected void tearDown() throws Exception { 92 DateTimeUtils.setCurrentMillisSystem(); 93 DateTimeZone.setDefault(originalDateTimeZone); 94 TimeZone.setDefault(originalTimeZone); 95 Locale.setDefault(originalLocale); 96 originalDateTimeZone = null; 97 originalTimeZone = null; 98 originalLocale = null; 99 } 100 101 public void testTest() { 103 assertEquals("2002-06-09T00:00:00.000Z", new Instant(TEST_TIME_NOW).toString()); 104 assertEquals("2002-04-05T12:24:00.000Z", new Instant(TEST_TIME1).toString()); 105 assertEquals("2003-05-06T14:28:00.000Z", new Instant(TEST_TIME2).toString()); 106 } 107 108 public void testSetMillis_long1() { 110 MutableDateTime test = new MutableDateTime(TEST_TIME1); 111 test.setMillis(TEST_TIME2); 112 assertEquals(TEST_TIME2, test.getMillis()); 113 assertEquals(ISOChronology.getInstance(), test.getChronology()); 114 } 115 116 public void testSetChronology_Chronology1() { 118 MutableDateTime test = new MutableDateTime(TEST_TIME1); 119 test.setChronology(GregorianChronology.getInstance(PARIS)); 120 assertEquals(TEST_TIME1, test.getMillis()); 121 assertEquals(GregorianChronology.getInstance(PARIS), test.getChronology()); 122 } 123 124 public void testSetChronology_Chronology2() { 125 MutableDateTime test = new MutableDateTime(TEST_TIME1); 126 test.setChronology(null); 127 assertEquals(TEST_TIME1, test.getMillis()); 128 assertEquals(ISOChronology.getInstance(), test.getChronology()); 129 } 130 131 public void testSetZone_DateTimeZone1() { 133 MutableDateTime test = new MutableDateTime(TEST_TIME1); 134 test.setZone(PARIS); 135 assertEquals(TEST_TIME1, test.getMillis()); 136 assertEquals(ISOChronology.getInstance(PARIS), test.getChronology()); 137 } 138 139 public void testSetZone_DateTimeZone2() { 140 MutableDateTime test = new MutableDateTime(TEST_TIME1); 141 test.setZone(null); 142 assertEquals(TEST_TIME1, test.getMillis()); 143 assertEquals(ISOChronology.getInstance(), test.getChronology()); 144 } 145 146 public void testSetZoneRetainFields_DateTimeZone1() { 148 MutableDateTime test = new MutableDateTime(TEST_TIME1); 149 test.setZoneRetainFields(PARIS); 150 assertEquals(TEST_TIME1 - DateTimeConstants.MILLIS_PER_HOUR, test.getMillis()); 151 assertEquals(ISOChronology.getInstance(PARIS), test.getChronology()); 152 } 153 154 public void testSetZoneRetainFields_DateTimeZone2() { 155 MutableDateTime test = new MutableDateTime(TEST_TIME1); 156 test.setZoneRetainFields(null); 157 assertEquals(TEST_TIME1, test.getMillis()); 158 assertEquals(ISOChronology.getInstance(), test.getChronology()); 159 } 160 161 public void testSetZoneRetainFields_DateTimeZone3() { 162 MutableDateTime test = new MutableDateTime(TEST_TIME1, GregorianChronology.getInstance(PARIS)); 163 test.setZoneRetainFields(null); 164 assertEquals(TEST_TIME1 + DateTimeConstants.MILLIS_PER_HOUR, test.getMillis()); 165 assertEquals(GregorianChronology.getInstance(), test.getChronology()); 166 } 167 168 public void testSetZoneRetainFields_DateTimeZone4() { 169 Chronology chrono = new MockNullZoneChronology(); 170 MutableDateTime test = new MutableDateTime(TEST_TIME1, chrono); 171 test.setZoneRetainFields(PARIS); 172 assertEquals(TEST_TIME1 - DateTimeConstants.MILLIS_PER_HOUR, test.getMillis()); 173 assertSame(chrono, test.getChronology()); 174 } 175 176 public void testSetMillis_RI1() { 178 MutableDateTime test = new MutableDateTime(TEST_TIME1, BuddhistChronology.getInstance()); 179 test.setMillis(new Instant(TEST_TIME2)); 180 assertEquals(TEST_TIME2, test.getMillis()); 181 assertEquals(BuddhistChronology.getInstance(), test.getChronology()); 182 } 183 184 public void testSetMillis_RI2() { 185 MutableDateTime test = new MutableDateTime(TEST_TIME1, BuddhistChronology.getInstance()); 186 test.setMillis(null); 187 assertEquals(TEST_TIME_NOW, test.getMillis()); 188 assertEquals(BuddhistChronology.getInstance(), test.getChronology()); 189 } 190 191 public void testSet_DateTimeFieldType_int1() { 193 MutableDateTime test = new MutableDateTime(TEST_TIME1); 194 test.set(DateTimeFieldType.year(), 2010); 195 assertEquals(2010, test.getYear()); 196 } 197 198 public void testSet_DateTimeFieldType_int2() { 199 MutableDateTime test = new MutableDateTime(TEST_TIME1); 200 try { 201 test.set(null, 0); 202 fail(); 203 } catch (IllegalArgumentException ex) {} 204 assertEquals(TEST_TIME1, test.getMillis()); 205 } 206 207 public void testSet_DateTimeFieldType_int3() { 208 MutableDateTime test = new MutableDateTime(TEST_TIME1); 209 try { 210 test.set(DateTimeFieldType.monthOfYear(), 13); 211 fail(); 212 } catch (IllegalArgumentException ex) {} 213 assertEquals(TEST_TIME1, test.getMillis()); 214 } 215 216 public void testSetDate_int_int_int1() { 218 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 219 test.setDate(2010, 12, 3); 220 assertEquals(2010, test.getYear()); 221 assertEquals(12, test.getMonthOfYear()); 222 assertEquals(3, test.getDayOfMonth()); 223 assertEquals(12, test.getHourOfDay()); 224 assertEquals(24, test.getMinuteOfHour()); 225 assertEquals(48, test.getSecondOfMinute()); 226 assertEquals(501, test.getMillisOfSecond()); 227 } 228 229 public void testSetDate_int_int_int2() { 230 MutableDateTime test = new MutableDateTime(TEST_TIME1); 231 try { 232 test.setDate(2010, 13, 3); 233 fail(); 234 } catch (IllegalArgumentException ex) {} 235 assertEquals(TEST_TIME1, test.getMillis()); 236 } 237 238 public void testSetDate_long1() { 240 long setter = new DateTime(2010, 12, 3, 5, 7, 9, 501).getMillis(); 241 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 242 test.setDate(setter); 243 assertEquals(2010, test.getYear()); 244 assertEquals(12, test.getMonthOfYear()); 245 assertEquals(3, test.getDayOfMonth()); 246 assertEquals(12, test.getHourOfDay()); 247 assertEquals(24, test.getMinuteOfHour()); 248 assertEquals(48, test.getSecondOfMinute()); 249 assertEquals(501, test.getMillisOfSecond()); 250 } 251 252 public void testSetDate_RI1() { 254 DateTime setter = new DateTime(2010, 12, 3, 5, 7, 9, 501); 255 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 256 test.setDate(setter); 257 assertEquals(2010, test.getYear()); 258 assertEquals(12, test.getMonthOfYear()); 259 assertEquals(3, test.getDayOfMonth()); 260 assertEquals(12, test.getHourOfDay()); 261 assertEquals(24, test.getMinuteOfHour()); 262 assertEquals(48, test.getSecondOfMinute()); 263 assertEquals(501, test.getMillisOfSecond()); 264 } 265 266 public void testSetDate_RI2() { 267 MutableDateTime test = new MutableDateTime(2010, 7, 8, 12, 24, 48, 501); 268 test.setDate(null); assertEquals(2002, test.getYear()); 270 assertEquals(6, test.getMonthOfYear()); 271 assertEquals(9, test.getDayOfMonth()); 272 assertEquals(12, test.getHourOfDay()); 273 assertEquals(24, test.getMinuteOfHour()); 274 assertEquals(48, test.getSecondOfMinute()); 275 assertEquals(501, test.getMillisOfSecond()); 276 } 277 278 public void testSetTime_int_int_int_int1() { 280 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 281 test.setTime(5, 6, 7, 8); 282 assertEquals(2002, test.getYear()); 283 assertEquals(6, test.getMonthOfYear()); 284 assertEquals(9, test.getDayOfMonth()); 285 assertEquals(5, test.getHourOfDay()); 286 assertEquals(6, test.getMinuteOfHour()); 287 assertEquals(7, test.getSecondOfMinute()); 288 assertEquals(8, test.getMillisOfSecond()); 289 } 290 291 public void testSetTime_int_int_int2() { 292 MutableDateTime test = new MutableDateTime(TEST_TIME1); 293 try { 294 test.setTime(60, 6, 7, 8); 295 fail(); 296 } catch (IllegalArgumentException ex) {} 297 assertEquals(TEST_TIME1, test.getMillis()); 298 } 299 300 public void testSetTime_long1() { 302 long setter = new DateTime(2010, 12, 3, 5, 7, 9, 11).getMillis(); 303 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 304 test.setTime(setter); 305 assertEquals(2002, test.getYear()); 306 assertEquals(6, test.getMonthOfYear()); 307 assertEquals(9, test.getDayOfMonth()); 308 assertEquals(5, test.getHourOfDay()); 309 assertEquals(7, test.getMinuteOfHour()); 310 assertEquals(9, test.getSecondOfMinute()); 311 assertEquals(11, test.getMillisOfSecond()); 312 } 313 314 public void testSetTime_RI1() { 316 DateTime setter = new DateTime(2010, 12, 3, 5, 7, 9, 11); 317 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 318 test.setTime(setter); 319 assertEquals(2002, test.getYear()); 320 assertEquals(6, test.getMonthOfYear()); 321 assertEquals(9, test.getDayOfMonth()); 322 assertEquals(5, test.getHourOfDay()); 323 assertEquals(7, test.getMinuteOfHour()); 324 assertEquals(9, test.getSecondOfMinute()); 325 assertEquals(11, test.getMillisOfSecond()); 326 } 327 328 public void testSetTime_RI2() { 329 MutableDateTime test = new MutableDateTime(2010, 7, 8, 12, 24, 48, 501); 330 test.setTime(null); assertEquals(2010, test.getYear()); 332 assertEquals(7, test.getMonthOfYear()); 333 assertEquals(8, test.getDayOfMonth()); 334 assertEquals(new DateTime(TEST_TIME_NOW).getHourOfDay(), test.getHourOfDay()); 335 assertEquals(new DateTime(TEST_TIME_NOW).getMinuteOfHour(), test.getMinuteOfHour()); 336 assertEquals(new DateTime(TEST_TIME_NOW).getSecondOfMinute(), test.getSecondOfMinute()); 337 assertEquals(new DateTime(TEST_TIME_NOW).getMillisOfSecond(), test.getMillisOfSecond()); 338 } 339 340 public void testSetTime_Object3() { 341 DateTime temp = new DateTime(2010, 12, 3, 5, 7, 9, 11); 342 DateTime setter = new DateTime(temp.getMillis(), new MockNullZoneChronology()); 343 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 344 test.setTime(setter); 345 assertEquals(2002, test.getYear()); 346 assertEquals(6, test.getMonthOfYear()); 347 assertEquals(9, test.getDayOfMonth()); 348 assertEquals(5, test.getHourOfDay()); 349 assertEquals(7, test.getMinuteOfHour()); 350 assertEquals(9, test.getSecondOfMinute()); 351 assertEquals(11, test.getMillisOfSecond()); 352 } 353 354 public void testSetDateTime_int_int_int_int_int_int_int1() { 356 MutableDateTime test = new MutableDateTime(2002, 6, 9, 12, 24, 48, 501); 357 test.setDateTime(2010, 12, 3, 5, 6, 7, 8); 358 assertEquals(2010, test.getYear()); 359 assertEquals(12, test.getMonthOfYear()); 360 assertEquals(3, test.getDayOfMonth()); 361 assertEquals(5, test.getHourOfDay()); 362 assertEquals(6, test.getMinuteOfHour()); 363 assertEquals(7, test.getSecondOfMinute()); 364 assertEquals(8, test.getMillisOfSecond()); 365 } 366 367 public void testSetDateTime_int_int_int_int_int_int_int2() { 368 MutableDateTime test = new MutableDateTime(TEST_TIME1); 369 try { 370 test.setDateTime(2010, 13, 3, 5, 6, 7, 8); 371 fail(); 372 } catch (IllegalArgumentException ex) { 373 } 374 assertEquals(TEST_TIME1, test.getMillis()); 375 } 376 377 public void testSetYear_int1() { 379 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 380 test.setYear(2010); 381 assertEquals("2010-06-09T05:06:07.008+01:00", test.toString()); 382 } 383 384 public void testSetMonthOfYear_int1() { 386 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 387 test.setMonthOfYear(12); 388 assertEquals("2002-12-09T05:06:07.008Z", test.toString()); 389 } 390 391 public void testSetMonthOfYear_int2() { 392 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 393 try { 394 test.setMonthOfYear(13); 395 fail(); 396 } catch (IllegalArgumentException ex) {} 397 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 398 } 399 400 public void testSetDayOfMonth_int1() { 402 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 403 test.setDayOfMonth(17); 404 assertEquals("2002-06-17T05:06:07.008+01:00", test.toString()); 405 } 406 407 public void testSetDayOfMonth_int2() { 408 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 409 try { 410 test.setDayOfMonth(31); 411 fail(); 412 } catch (IllegalArgumentException ex) {} 413 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 414 } 415 416 public void testSetDayOfYear_int1() { 418 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 419 test.setDayOfYear(3); 420 assertEquals("2002-01-03T05:06:07.008Z", test.toString()); 421 } 422 423 public void testSetDayOfYear_int2() { 424 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 425 try { 426 test.setDayOfYear(366); 427 fail(); 428 } catch (IllegalArgumentException ex) {} 429 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 430 } 431 432 public void testSetWeekyear_int1() { 434 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 435 test.setWeekyear(2001); 436 assertEquals("2001-06-10T05:06:07.008+01:00", test.toString()); 437 } 438 439 public void testSetWeekOfWeekyear_int1() { 441 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 442 test.setWeekOfWeekyear(2); 443 assertEquals("2002-01-13T05:06:07.008Z", test.toString()); 444 } 445 446 public void testSetWeekOfWeekyear_int2() { 447 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 448 try { 449 test.setWeekOfWeekyear(53); 450 fail(); 451 } catch (IllegalArgumentException ex) {} 452 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 453 } 454 455 public void testSetDayOfWeek_int1() { 457 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 458 test.setDayOfWeek(5); 459 assertEquals("2002-06-07T05:06:07.008+01:00", test.toString()); 460 } 461 462 public void testSetDayOfWeek_int2() { 463 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 464 try { 465 test.setDayOfWeek(8); 466 fail(); 467 } catch (IllegalArgumentException ex) {} 468 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 469 } 470 471 public void testSetHourOfDay_int1() { 473 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 474 test.setHourOfDay(13); 475 assertEquals("2002-06-09T13:06:07.008+01:00", test.toString()); 476 } 477 478 public void testSetHourOfDay_int2() { 479 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 480 try { 481 test.setHourOfDay(24); 482 fail(); 483 } catch (IllegalArgumentException ex) {} 484 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 485 } 486 487 public void testSetMinuteOfHour_int1() { 489 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 490 test.setMinuteOfHour(13); 491 assertEquals("2002-06-09T05:13:07.008+01:00", test.toString()); 492 } 493 494 public void testSetMinuteOfHour_int2() { 495 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 496 try { 497 test.setMinuteOfHour(60); 498 fail(); 499 } catch (IllegalArgumentException ex) {} 500 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 501 } 502 503 public void testSetMinuteOfDay_int1() { 505 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 506 test.setMinuteOfDay(13); 507 assertEquals("2002-06-09T00:13:07.008+01:00", test.toString()); 508 } 509 510 public void testSetMinuteOfDay_int2() { 511 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 512 try { 513 test.setMinuteOfDay(24 * 60); 514 fail(); 515 } catch (IllegalArgumentException ex) {} 516 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 517 } 518 519 public void testSetSecondOfMinute_int1() { 521 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 522 test.setSecondOfMinute(13); 523 assertEquals("2002-06-09T05:06:13.008+01:00", test.toString()); 524 } 525 526 public void testSetSecondOfMinute_int2() { 527 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 528 try { 529 test.setSecondOfMinute(60); 530 fail(); 531 } catch (IllegalArgumentException ex) {} 532 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 533 } 534 535 public void testSetSecondOfDay_int1() { 537 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 538 test.setSecondOfDay(13); 539 assertEquals("2002-06-09T00:00:13.008+01:00", test.toString()); 540 } 541 542 public void testSetSecondOfDay_int2() { 543 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 544 try { 545 test.setSecondOfDay(24 * 60 * 60); 546 fail(); 547 } catch (IllegalArgumentException ex) {} 548 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 549 } 550 551 public void testSetMilliOfSecond_int1() { 553 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 554 test.setMillisOfSecond(13); 555 assertEquals("2002-06-09T05:06:07.013+01:00", test.toString()); 556 } 557 558 public void testSetMilliOfSecond_int2() { 559 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 560 try { 561 test.setMillisOfSecond(1000); 562 fail(); 563 } catch (IllegalArgumentException ex) {} 564 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 565 } 566 567 public void testSetMilliOfDay_int1() { 569 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 570 test.setMillisOfDay(13); 571 assertEquals("2002-06-09T00:00:00.013+01:00", test.toString()); 572 } 573 574 public void testSetMilliOfDay_int2() { 575 MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8); 576 try { 577 test.setMillisOfDay(24 * 60 * 60 * 1000); 578 fail(); 579 } catch (IllegalArgumentException ex) {} 580 assertEquals("2002-06-09T05:06:07.008+01:00", test.toString()); 581 } 582 583 } 584 | Popular Tags |