526 {11, 0, 0, 0, OFFSET_PONE}, 527 {23, 59, 59, 999999999, OFFSET_PONE}, 528 }; 529 } 530 531 @Test(dataProvider="sampleTimes") 532 public void test_get(int h, int m, int s, int n, ZoneOffset offset) { 533 LocalTime localTime = LocalTime.of(h, m, s, n); 534 OffsetTime a = OffsetTime.of(localTime, offset); 535 536 assertEquals(a.toLocalTime(), localTime); 537 assertEquals(a.getOffset(), offset); 538 assertEquals(a.toString(), localTime.toString() + offset.toString()); 539 assertEquals(a.getHour(), localTime.getHour()); 540 assertEquals(a.getMinute(), localTime.getMinute()); 541 assertEquals(a.getSecond(), localTime.getSecond()); 542 assertEquals(a.getNano(), localTime.getNano()); 543 } 544 545 //----------------------------------------------------------------------- 546 // get(TemporalField) 547 //----------------------------------------------------------------------- 548 @Test 549 public void test_get_TemporalField() { 550 OffsetTime test = OffsetTime.of(12, 30, 40, 987654321, OFFSET_PONE); 551 assertEquals(test.get(ChronoField.HOUR_OF_DAY), 12); 552 assertEquals(test.get(ChronoField.MINUTE_OF_HOUR), 30); 553 assertEquals(test.get(ChronoField.SECOND_OF_MINUTE), 40); 554 assertEquals(test.get(ChronoField.NANO_OF_SECOND), 987654321); 555 assertEquals(test.get(ChronoField.HOUR_OF_AMPM), 0); 556 assertEquals(test.get(ChronoField.AMPM_OF_DAY), 1); 557 558 assertEquals(test.get(ChronoField.OFFSET_SECONDS), 3600); 559 } 560 561 @Test 562 public void test_getLong_TemporalField() { 563 OffsetTime test = OffsetTime.of(12, 30, 40, 987654321, OFFSET_PONE); 564 assertEquals(test.getLong(ChronoField.HOUR_OF_DAY), 12); 565 assertEquals(test.getLong(ChronoField.MINUTE_OF_HOUR), 30); 1021 } 1022 1023 //----------------------------------------------------------------------- 1024 // minusNanos() 1025 //----------------------------------------------------------------------- 1026 @Test 1027 public void test_minusNanos() { 1028 OffsetTime base = OffsetTime.of(11, 30, 59, 0, OFFSET_PONE); 1029 OffsetTime test = base.minusNanos(1); 1030 assertEquals(test, OffsetTime.of(11, 30, 58, 999999999, OFFSET_PONE)); 1031 } 1032 1033 @Test 1034 public void test_minusNanos_zero() { 1035 OffsetTime base = OffsetTime.of(11, 30, 59, 0, OFFSET_PONE); 1036 OffsetTime test = base.minusNanos(0); 1037 assertEquals(test, base); 1038 } 1039 1040 //----------------------------------------------------------------------- 1041 // periodUntil(Temporal, TemporalUnit) 1042 //----------------------------------------------------------------------- 1043 @DataProvider(name="periodUntilUnit") 1044 Object[][] data_periodUntilUnit() { 1045 return new Object[][] { 1046 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(13, 1, 1), ZoneOffset.ofHours(1)), HALF_DAYS, 1}, 1047 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), HOURS, 1}, 1048 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), MINUTES, 60}, 1049 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), SECONDS, 3600}, 1050 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), MILLIS, 3600*1000}, 1051 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), MICROS, 3600*1000*1000L}, 1052 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), NANOS, 3600*1000*1000L*1000}, 1053 1054 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(14, 1, 1), ZoneOffset.ofHours(2)), HALF_DAYS, 1}, 1055 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), HOURS, 1}, 1056 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), MINUTES, 60}, 1057 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), SECONDS, 3600}, 1058 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), MILLIS, 3600*1000}, 1059 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), MICROS, 3600*1000*1000L}, 1060 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), NANOS, 3600*1000*1000L*1000}, 1061 }; 1062 } 1063 1064 @Test(dataProvider="periodUntilUnit") 1065 public void test_periodUntil_TemporalUnit(OffsetTime offsetTime1, OffsetTime offsetTime2, TemporalUnit unit, long expected) { 1066 long amount = offsetTime1.periodUntil(offsetTime2, unit); 1067 assertEquals(amount, expected); 1068 } 1069 1070 @Test(dataProvider="periodUntilUnit") 1071 public void test_periodUntil_TemporalUnit_negated(OffsetTime offsetTime1, OffsetTime offsetTime2, TemporalUnit unit, long expected) { 1072 long amount = offsetTime2.periodUntil(offsetTime1, unit); 1073 assertEquals(amount, -expected); 1074 } 1075 1076 @Test(expectedExceptions=DateTimeException.class) 1077 public void test_periodUntil_InvalidType() { 1078 OffsetTime offsetTime = OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)); 1079 OffsetDateTime offsetDateTime = offsetTime.atDate(LocalDate.of(1980, 2, 10)); 1080 offsetTime.periodUntil(offsetDateTime, SECONDS); 1081 } 1082 1083 @Test(expectedExceptions=DateTimeException.class) 1084 public void test_periodUntil_InvalidTemporalUnit() { 1085 OffsetTime offsetTime1 = OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)); 1086 OffsetTime offsetTime2 = OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)); 1087 offsetTime1.periodUntil(offsetTime2, MONTHS); 1088 } 1089 1090 //----------------------------------------------------------------------- 1091 // format(DateTimeFormatter) 1092 //----------------------------------------------------------------------- 1093 @Test 1094 public void test_format_formatter() { 1095 DateTimeFormatter f = DateTimeFormatter.ofPattern("H m s"); 1096 String t = OffsetTime.of(11, 30, 0, 0, OFFSET_PONE).format(f); 1097 assertEquals(t, "11 30 0"); 1098 } 1099 1100 @Test(expectedExceptions=NullPointerException.class) 1101 public void test_format_formatter_null() { 1102 OffsetTime.of(11, 30, 0, 0, OFFSET_PONE).format(null); 1103 } 1104 1105 //----------------------------------------------------------------------- 1106 // compareTo() 1107 //----------------------------------------------------------------------- | 526 {11, 0, 0, 0, OFFSET_PONE}, 527 {23, 59, 59, 999999999, OFFSET_PONE}, 528 }; 529 } 530 531 @Test(dataProvider="sampleTimes") 532 public void test_get(int h, int m, int s, int n, ZoneOffset offset) { 533 LocalTime localTime = LocalTime.of(h, m, s, n); 534 OffsetTime a = OffsetTime.of(localTime, offset); 535 536 assertEquals(a.toLocalTime(), localTime); 537 assertEquals(a.getOffset(), offset); 538 assertEquals(a.toString(), localTime.toString() + offset.toString()); 539 assertEquals(a.getHour(), localTime.getHour()); 540 assertEquals(a.getMinute(), localTime.getMinute()); 541 assertEquals(a.getSecond(), localTime.getSecond()); 542 assertEquals(a.getNano(), localTime.getNano()); 543 } 544 545 //----------------------------------------------------------------------- 546 // isSupported(TemporalField) 547 //----------------------------------------------------------------------- 548 @Test 549 public void test_isSupported_TemporalField() { 550 assertEquals(TEST_11_30_59_500_PONE.isSupported((TemporalField) null), false); 551 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.NANO_OF_SECOND), true); 552 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.NANO_OF_DAY), true); 553 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.MICRO_OF_SECOND), true); 554 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.MICRO_OF_DAY), true); 555 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.MILLI_OF_SECOND), true); 556 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.MILLI_OF_DAY), true); 557 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.SECOND_OF_MINUTE), true); 558 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.SECOND_OF_DAY), true); 559 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.MINUTE_OF_HOUR), true); 560 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.MINUTE_OF_DAY), true); 561 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.HOUR_OF_AMPM), true); 562 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.CLOCK_HOUR_OF_AMPM), true); 563 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.HOUR_OF_DAY), true); 564 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.CLOCK_HOUR_OF_DAY), true); 565 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.AMPM_OF_DAY), true); 566 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.DAY_OF_WEEK), false); 567 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH), false); 568 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR), false); 569 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.DAY_OF_MONTH), false); 570 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.DAY_OF_YEAR), false); 571 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.EPOCH_DAY), false); 572 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.ALIGNED_WEEK_OF_MONTH), false); 573 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.ALIGNED_WEEK_OF_YEAR), false); 574 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.MONTH_OF_YEAR), false); 575 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.PROLEPTIC_MONTH), false); 576 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.YEAR), false); 577 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.YEAR_OF_ERA), false); 578 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.ERA), false); 579 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.INSTANT_SECONDS), false); 580 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoField.OFFSET_SECONDS), true); 581 } 582 583 //----------------------------------------------------------------------- 584 // isSupported(TemporalUnit) 585 //----------------------------------------------------------------------- 586 @Test 587 public void test_isSupported_TemporalUnit() { 588 assertEquals(TEST_11_30_59_500_PONE.isSupported((TemporalUnit) null), false); 589 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.NANOS), true); 590 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.MICROS), true); 591 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.MILLIS), true); 592 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.SECONDS), true); 593 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.MINUTES), true); 594 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.HOURS), true); 595 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.HALF_DAYS), true); 596 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.DAYS), false); 597 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.WEEKS), false); 598 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.MONTHS), false); 599 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.YEARS), false); 600 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.DECADES), false); 601 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.CENTURIES), false); 602 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.MILLENNIA), false); 603 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.ERAS), false); 604 assertEquals(TEST_11_30_59_500_PONE.isSupported(ChronoUnit.FOREVER), false); 605 } 606 607 //----------------------------------------------------------------------- 608 // get(TemporalField) 609 //----------------------------------------------------------------------- 610 @Test 611 public void test_get_TemporalField() { 612 OffsetTime test = OffsetTime.of(12, 30, 40, 987654321, OFFSET_PONE); 613 assertEquals(test.get(ChronoField.HOUR_OF_DAY), 12); 614 assertEquals(test.get(ChronoField.MINUTE_OF_HOUR), 30); 615 assertEquals(test.get(ChronoField.SECOND_OF_MINUTE), 40); 616 assertEquals(test.get(ChronoField.NANO_OF_SECOND), 987654321); 617 assertEquals(test.get(ChronoField.HOUR_OF_AMPM), 0); 618 assertEquals(test.get(ChronoField.AMPM_OF_DAY), 1); 619 620 assertEquals(test.get(ChronoField.OFFSET_SECONDS), 3600); 621 } 622 623 @Test 624 public void test_getLong_TemporalField() { 625 OffsetTime test = OffsetTime.of(12, 30, 40, 987654321, OFFSET_PONE); 626 assertEquals(test.getLong(ChronoField.HOUR_OF_DAY), 12); 627 assertEquals(test.getLong(ChronoField.MINUTE_OF_HOUR), 30); 1083 } 1084 1085 //----------------------------------------------------------------------- 1086 // minusNanos() 1087 //----------------------------------------------------------------------- 1088 @Test 1089 public void test_minusNanos() { 1090 OffsetTime base = OffsetTime.of(11, 30, 59, 0, OFFSET_PONE); 1091 OffsetTime test = base.minusNanos(1); 1092 assertEquals(test, OffsetTime.of(11, 30, 58, 999999999, OFFSET_PONE)); 1093 } 1094 1095 @Test 1096 public void test_minusNanos_zero() { 1097 OffsetTime base = OffsetTime.of(11, 30, 59, 0, OFFSET_PONE); 1098 OffsetTime test = base.minusNanos(0); 1099 assertEquals(test, base); 1100 } 1101 1102 //----------------------------------------------------------------------- 1103 // until(Temporal, TemporalUnit) 1104 //----------------------------------------------------------------------- 1105 @DataProvider(name="periodUntilUnit") 1106 Object[][] data_periodUntilUnit() { 1107 return new Object[][] { 1108 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(13, 1, 1), ZoneOffset.ofHours(1)), HALF_DAYS, 1}, 1109 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), HOURS, 1}, 1110 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), MINUTES, 60}, 1111 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), SECONDS, 3600}, 1112 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), MILLIS, 3600*1000}, 1113 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), MICROS, 3600*1000*1000L}, 1114 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)), NANOS, 3600*1000*1000L*1000}, 1115 1116 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(14, 1, 1), ZoneOffset.ofHours(2)), HALF_DAYS, 1}, 1117 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), HOURS, 1}, 1118 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), MINUTES, 60}, 1119 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), SECONDS, 3600}, 1120 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), MILLIS, 3600*1000}, 1121 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), MICROS, 3600*1000*1000L}, 1122 {OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)), OffsetTime.of(LocalTime.of(3, 1, 1), ZoneOffset.ofHours(2)), NANOS, 3600*1000*1000L*1000}, 1123 }; 1124 } 1125 1126 @Test(dataProvider="periodUntilUnit") 1127 public void test_periodUntil_TemporalUnit(OffsetTime offsetTime1, OffsetTime offsetTime2, TemporalUnit unit, long expected) { 1128 long amount = offsetTime1.until(offsetTime2, unit); 1129 assertEquals(amount, expected); 1130 } 1131 1132 @Test(dataProvider="periodUntilUnit") 1133 public void test_periodUntil_TemporalUnit_negated(OffsetTime offsetTime1, OffsetTime offsetTime2, TemporalUnit unit, long expected) { 1134 long amount = offsetTime2.until(offsetTime1, unit); 1135 assertEquals(amount, -expected); 1136 } 1137 1138 @Test(expectedExceptions=DateTimeException.class) 1139 public void test_periodUntil_InvalidType() { 1140 OffsetTime offsetTime = OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)); 1141 OffsetDateTime offsetDateTime = offsetTime.atDate(LocalDate.of(1980, 2, 10)); 1142 offsetTime.until(offsetDateTime, SECONDS); 1143 } 1144 1145 @Test(expectedExceptions=DateTimeException.class) 1146 public void test_periodUntil_InvalidTemporalUnit() { 1147 OffsetTime offsetTime1 = OffsetTime.of(LocalTime.of(1, 1, 1), ZoneOffset.ofHours(1)); 1148 OffsetTime offsetTime2 = OffsetTime.of(LocalTime.of(2, 1, 1), ZoneOffset.ofHours(1)); 1149 offsetTime1.until(offsetTime2, MONTHS); 1150 } 1151 1152 //----------------------------------------------------------------------- 1153 // format(DateTimeFormatter) 1154 //----------------------------------------------------------------------- 1155 @Test 1156 public void test_format_formatter() { 1157 DateTimeFormatter f = DateTimeFormatter.ofPattern("H m s"); 1158 String t = OffsetTime.of(11, 30, 0, 0, OFFSET_PONE).format(f); 1159 assertEquals(t, "11 30 0"); 1160 } 1161 1162 @Test(expectedExceptions=NullPointerException.class) 1163 public void test_format_formatter_null() { 1164 OffsetTime.of(11, 30, 0, 0, OFFSET_PONE).format(null); 1165 } 1166 1167 //----------------------------------------------------------------------- 1168 // compareTo() 1169 //----------------------------------------------------------------------- |