test/java/time/tck/java/time/TCKZoneOffset.java

Print this page




  50  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  51  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  52  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  53  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  54  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  55  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  56  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  57  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  58  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  59  */
  60 package tck.java.time;
  61 
  62 import static java.time.temporal.ChronoField.OFFSET_SECONDS;
  63 import static org.testng.Assert.assertEquals;
  64 import static org.testng.Assert.assertSame;
  65 import static org.testng.Assert.assertTrue;
  66 import static org.testng.Assert.fail;
  67 
  68 import java.io.ByteArrayOutputStream;
  69 import java.io.DataOutputStream;
  70 import java.util.ArrayList;
  71 import java.util.Arrays;
  72 import java.util.List;
  73 
  74 import java.time.DateTimeException;
  75 import java.time.Duration;
  76 import java.time.Instant;
  77 import java.time.LocalDate;
  78 import java.time.LocalDateTime;
  79 import java.time.LocalTime;
  80 import java.time.ZoneOffset;
  81 import java.time.ZonedDateTime;
  82 import java.time.temporal.ChronoField;
  83 import java.time.temporal.JulianFields;
  84 import java.time.temporal.OffsetDate;
  85 import java.time.temporal.Queries;
  86 import java.time.temporal.TemporalAccessor;
  87 import java.time.temporal.TemporalField;




  88 

  89 import org.testng.annotations.Test;
  90 
  91 /**
  92  * Test ZoneOffset.
  93  */
  94 @Test
  95 public class TCKZoneOffset extends AbstractDateTimeTest {
  96 
  97     //-----------------------------------------------------------------------
  98     @Override
  99     protected List<TemporalAccessor> samples() {
 100         TemporalAccessor[] array = {ZoneOffset.ofHours(1), ZoneOffset.ofHoursMinutesSeconds(-5, -6, -30) };
 101         return Arrays.asList(array);
 102     }
 103 
 104     @Override
 105     protected List<TemporalField> validFields() {
 106         TemporalField[] array = {
 107             OFFSET_SECONDS,
 108         };


 463         assertEquals(ZoneOffset.ofTotalSeconds(60 * 60 + 1), ZoneOffset.ofHoursMinutesSeconds(1, 0, 1));
 464         assertEquals(ZoneOffset.ofTotalSeconds(18 * 60 * 60), ZoneOffset.ofHours(18));
 465         assertEquals(ZoneOffset.ofTotalSeconds(-18 * 60 * 60), ZoneOffset.ofHours(-18));
 466     }
 467 
 468     @Test(expectedExceptions=DateTimeException.class, groups={"tck"})
 469     public void test_factory_ofTotalSeconds_tooLarge() {
 470         ZoneOffset.ofTotalSeconds(18 * 60 * 60 + 1);
 471     }
 472 
 473     @Test(expectedExceptions=DateTimeException.class, groups={"tck"})
 474     public void test_factory_ofTotalSeconds_tooSmall() {
 475         ZoneOffset.ofTotalSeconds(-18 * 60 * 60 - 1);
 476     }
 477 
 478     //-----------------------------------------------------------------------
 479     // from()
 480     //-----------------------------------------------------------------------
 481     @Test(groups={"tck"})
 482     public void test_factory_CalendricalObject() {
 483         assertEquals(ZoneOffset.from(OffsetDate.of(LocalDate.of(2012, 5, 2), ZoneOffset.ofHours(6))), ZoneOffset.ofHours(6));
 484         assertEquals(ZoneOffset.from(ZonedDateTime.of(LocalDateTime.of(LocalDate.of(2007, 7, 15),
 485                 LocalTime.of(17, 30)), ZoneOffset.ofHours(2))), ZoneOffset.ofHours(2));
 486     }
 487 
 488     @Test(expectedExceptions=DateTimeException.class, groups={"tck"})
 489     public void test_factory_CalendricalObject_invalid_noDerive() {
 490         ZoneOffset.from(LocalTime.of(12, 30));
 491     }
 492 
 493     @Test(expectedExceptions=NullPointerException.class, groups={"tck"})
 494     public void test_factory_CalendricalObject_null() {
 495         ZoneOffset.from((TemporalAccessor) null);
 496     }
 497 
 498     //-----------------------------------------------------------------------
 499     // getTotalSeconds()
 500     //-----------------------------------------------------------------------
 501     @Test(groups={"tck"})
 502     public void test_getTotalSeconds() {
 503         ZoneOffset offset = ZoneOffset.ofTotalSeconds(60 * 60 + 1);


 543     //-----------------------------------------------------------------------
 544     // get(TemporalField)
 545     //-----------------------------------------------------------------------
 546     @Test
 547     public void test_get_TemporalField() {
 548         assertEquals(ZoneOffset.UTC.get(OFFSET_SECONDS), 0);
 549         assertEquals(ZoneOffset.ofHours(-2).get(OFFSET_SECONDS), -7200);
 550         assertEquals(ZoneOffset.ofHoursMinutesSeconds(0, 1, 5).get(OFFSET_SECONDS), 65);
 551     }
 552 
 553     @Test
 554     public void test_getLong_TemporalField() {
 555         assertEquals(ZoneOffset.UTC.getLong(OFFSET_SECONDS), 0);
 556         assertEquals(ZoneOffset.ofHours(-2).getLong(OFFSET_SECONDS), -7200);
 557         assertEquals(ZoneOffset.ofHoursMinutesSeconds(0, 1, 5).getLong(OFFSET_SECONDS), 65);
 558     }
 559 
 560     //-----------------------------------------------------------------------
 561     // query(TemporalQuery)
 562     //-----------------------------------------------------------------------
 563     @Test
 564     public void test_query_chrono() {
 565         ZoneOffset test = ZoneOffset.ofHoursMinutes(1, 30);
 566         assertEquals(test.query(Queries.chrono()), null);
 567         assertEquals(Queries.chrono().queryFrom(test), null);
 568     }
 569 
 570     @Test
 571     public void test_query_zoneId() {
 572         ZoneOffset test = ZoneOffset.ofHoursMinutes(1, 30);
 573         assertEquals(test.query(Queries.zoneId()), null);
 574         assertEquals(Queries.zoneId().queryFrom(test), null);
 575     }
 576 
 577     @Test
 578     public void test_query_precision() {
 579         ZoneOffset test = ZoneOffset.ofHoursMinutes(1, 30);
 580         assertEquals(test.query(Queries.precision()), null);
 581         assertEquals(Queries.precision().queryFrom(test), null);
 582     }
 583 
 584     @Test
 585     public void test_query_offset() {
 586         ZoneOffset test = ZoneOffset.ofHoursMinutes(1, 30);
 587         assertEquals(test.query(Queries.offset()), test);
 588         assertEquals(Queries.offset().queryFrom(test), test);
 589     }
 590 
 591     @Test
 592     public void test_query_zone() {
 593         ZoneOffset test = ZoneOffset.ofHoursMinutes(1, 30);
 594         assertEquals(test.query(Queries.zone()), test);
 595         assertEquals(Queries.zone().queryFrom(test), test);
 596     }
 597 
 598     @Test(expectedExceptions=NullPointerException.class)
 599     public void test_query_null() {
 600         ZoneOffset.ofHoursMinutes(1, 30).query(null);
 601     }
 602 
 603     //-----------------------------------------------------------------------
 604     // compareTo()
 605     //-----------------------------------------------------------------------
 606     @Test(groups={"tck"})
 607     public void test_compareTo() {
 608         ZoneOffset offset1 = ZoneOffset.ofHoursMinutesSeconds(1, 2, 3);
 609         ZoneOffset offset2 = ZoneOffset.ofHoursMinutesSeconds(2, 3, 4);
 610         assertTrue(offset1.compareTo(offset2) > 0);
 611         assertTrue(offset2.compareTo(offset1) < 0);
 612         assertTrue(offset1.compareTo(offset1) == 0);
 613         assertTrue(offset2.compareTo(offset2) == 0);
 614     }
 615 
 616     //-----------------------------------------------------------------------
 617     // equals() / hashCode()
 618     //-----------------------------------------------------------------------
 619     @Test(groups={"tck"})
 620     public void test_equals() {




  50  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  51  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  52  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  53  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  54  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  55  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  56  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  57  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  58  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  59  */
  60 package tck.java.time;
  61 
  62 import static java.time.temporal.ChronoField.OFFSET_SECONDS;
  63 import static org.testng.Assert.assertEquals;
  64 import static org.testng.Assert.assertSame;
  65 import static org.testng.Assert.assertTrue;
  66 import static org.testng.Assert.fail;
  67 
  68 import java.io.ByteArrayOutputStream;
  69 import java.io.DataOutputStream;




  70 import java.time.DateTimeException;
  71 import java.time.Duration;
  72 import java.time.Instant;
  73 import java.time.LocalDate;
  74 import java.time.LocalDateTime;
  75 import java.time.LocalTime;
  76 import java.time.ZoneOffset;
  77 import java.time.ZonedDateTime;
  78 import java.time.temporal.ChronoField;
  79 import java.time.temporal.JulianFields;

  80 import java.time.temporal.Queries;
  81 import java.time.temporal.TemporalAccessor;
  82 import java.time.temporal.TemporalField;
  83 import java.time.temporal.TemporalQuery;
  84 import java.util.ArrayList;
  85 import java.util.Arrays;
  86 import java.util.List;
  87 
  88 import org.testng.annotations.DataProvider;
  89 import org.testng.annotations.Test;
  90 
  91 /**
  92  * Test ZoneOffset.
  93  */
  94 @Test
  95 public class TCKZoneOffset extends AbstractDateTimeTest {
  96 
  97     //-----------------------------------------------------------------------
  98     @Override
  99     protected List<TemporalAccessor> samples() {
 100         TemporalAccessor[] array = {ZoneOffset.ofHours(1), ZoneOffset.ofHoursMinutesSeconds(-5, -6, -30) };
 101         return Arrays.asList(array);
 102     }
 103 
 104     @Override
 105     protected List<TemporalField> validFields() {
 106         TemporalField[] array = {
 107             OFFSET_SECONDS,
 108         };


 463         assertEquals(ZoneOffset.ofTotalSeconds(60 * 60 + 1), ZoneOffset.ofHoursMinutesSeconds(1, 0, 1));
 464         assertEquals(ZoneOffset.ofTotalSeconds(18 * 60 * 60), ZoneOffset.ofHours(18));
 465         assertEquals(ZoneOffset.ofTotalSeconds(-18 * 60 * 60), ZoneOffset.ofHours(-18));
 466     }
 467 
 468     @Test(expectedExceptions=DateTimeException.class, groups={"tck"})
 469     public void test_factory_ofTotalSeconds_tooLarge() {
 470         ZoneOffset.ofTotalSeconds(18 * 60 * 60 + 1);
 471     }
 472 
 473     @Test(expectedExceptions=DateTimeException.class, groups={"tck"})
 474     public void test_factory_ofTotalSeconds_tooSmall() {
 475         ZoneOffset.ofTotalSeconds(-18 * 60 * 60 - 1);
 476     }
 477 
 478     //-----------------------------------------------------------------------
 479     // from()
 480     //-----------------------------------------------------------------------
 481     @Test(groups={"tck"})
 482     public void test_factory_CalendricalObject() {

 483         assertEquals(ZoneOffset.from(ZonedDateTime.of(LocalDateTime.of(LocalDate.of(2007, 7, 15),
 484                 LocalTime.of(17, 30)), ZoneOffset.ofHours(2))), ZoneOffset.ofHours(2));
 485     }
 486 
 487     @Test(expectedExceptions=DateTimeException.class, groups={"tck"})
 488     public void test_factory_CalendricalObject_invalid_noDerive() {
 489         ZoneOffset.from(LocalTime.of(12, 30));
 490     }
 491 
 492     @Test(expectedExceptions=NullPointerException.class, groups={"tck"})
 493     public void test_factory_CalendricalObject_null() {
 494         ZoneOffset.from((TemporalAccessor) null);
 495     }
 496 
 497     //-----------------------------------------------------------------------
 498     // getTotalSeconds()
 499     //-----------------------------------------------------------------------
 500     @Test(groups={"tck"})
 501     public void test_getTotalSeconds() {
 502         ZoneOffset offset = ZoneOffset.ofTotalSeconds(60 * 60 + 1);


 542     //-----------------------------------------------------------------------
 543     // get(TemporalField)
 544     //-----------------------------------------------------------------------
 545     @Test
 546     public void test_get_TemporalField() {
 547         assertEquals(ZoneOffset.UTC.get(OFFSET_SECONDS), 0);
 548         assertEquals(ZoneOffset.ofHours(-2).get(OFFSET_SECONDS), -7200);
 549         assertEquals(ZoneOffset.ofHoursMinutesSeconds(0, 1, 5).get(OFFSET_SECONDS), 65);
 550     }
 551 
 552     @Test
 553     public void test_getLong_TemporalField() {
 554         assertEquals(ZoneOffset.UTC.getLong(OFFSET_SECONDS), 0);
 555         assertEquals(ZoneOffset.ofHours(-2).getLong(OFFSET_SECONDS), -7200);
 556         assertEquals(ZoneOffset.ofHoursMinutesSeconds(0, 1, 5).getLong(OFFSET_SECONDS), 65);
 557     }
 558 
 559     //-----------------------------------------------------------------------
 560     // query(TemporalQuery)
 561     //-----------------------------------------------------------------------
 562     @DataProvider(name="query")
 563     Object[][] data_query() {
 564         return new Object[][] {
 565                 {ZoneOffset.UTC, Queries.chronology(), null},
 566                 {ZoneOffset.UTC, Queries.zoneId(), null},
 567                 {ZoneOffset.UTC, Queries.precision(), null},
 568                 {ZoneOffset.UTC, Queries.zone(), ZoneOffset.UTC},
 569                 {ZoneOffset.UTC, Queries.offset(), ZoneOffset.UTC},
 570                 {ZoneOffset.UTC, Queries.localDate(), null},
 571                 {ZoneOffset.UTC, Queries.localTime(), null},
 572         };








 573     }
 574 
 575     @Test(dataProvider="query")
 576     public <T> void test_query(TemporalAccessor temporal, TemporalQuery<T> query, T expected) {
 577         assertEquals(temporal.query(query), expected);


 578     }
 579 
 580     @Test(dataProvider="query")
 581     public <T> void test_queryFrom(TemporalAccessor temporal, TemporalQuery<T> query, T expected) {
 582         assertEquals(query.queryFrom(temporal), expected);


 583     }
 584 
 585     @Test(expectedExceptions=NullPointerException.class)
 586     public void test_query_null() {
 587         ZoneOffset.UTC.query(null);
 588     }
 589 
 590     //-----------------------------------------------------------------------
 591     // compareTo()
 592     //-----------------------------------------------------------------------
 593     @Test(groups={"tck"})
 594     public void test_compareTo() {
 595         ZoneOffset offset1 = ZoneOffset.ofHoursMinutesSeconds(1, 2, 3);
 596         ZoneOffset offset2 = ZoneOffset.ofHoursMinutesSeconds(2, 3, 4);
 597         assertTrue(offset1.compareTo(offset2) > 0);
 598         assertTrue(offset2.compareTo(offset1) < 0);
 599         assertTrue(offset1.compareTo(offset1) == 0);
 600         assertTrue(offset2.compareTo(offset2) == 0);
 601     }
 602 
 603     //-----------------------------------------------------------------------
 604     // equals() / hashCode()
 605     //-----------------------------------------------------------------------
 606     @Test(groups={"tck"})
 607     public void test_equals() {