test/java/time/tck/java/time/chrono/TestChronoLocalDateTime.java
Print this page
@@ -52,44 +52,41 @@
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-package tck.java.time.calendar;
+package tck.java.time.chrono;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
-import java.time.calendar.HijrahChrono;
-import java.time.calendar.JapaneseChrono;
-import java.time.calendar.MinguoChrono;
-import java.time.calendar.ThaiBuddhistChrono;
-import java.time.temporal.Chrono;
-import java.time.temporal.ChronoLocalDateTime;
+import java.time.chrono.HijrahChronology;
+import java.time.chrono.JapaneseChronology;
+import java.time.chrono.MinguoChronology;
+import java.time.chrono.ThaiBuddhistChronology;
+import java.time.chrono.ChronoLocalDate;
+import java.time.chrono.ChronoLocalDateTime;
+import java.time.chrono.Chronology;
+import java.time.chrono.IsoChronology;
import java.time.temporal.ChronoUnit;
-import java.time.temporal.SimplePeriod;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAccessor;
-import java.time.format.DateTimeBuilder;
-import java.time.temporal.TemporalAdder;
import java.time.temporal.TemporalAdjuster;
+import java.time.temporal.TemporalAmount;
import java.time.temporal.TemporalField;
-import java.time.temporal.TemporalSubtractor;
-import java.time.temporal.ValueRange;
-import java.time.temporal.ISOChrono;
import java.time.temporal.TemporalUnit;
+import java.time.temporal.ValueRange;
+import java.util.ArrayList;
+import java.util.List;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -100,25 +97,25 @@
public class TestChronoLocalDateTime {
//-----------------------------------------------------------------------
// regular data factory for names and descriptions of available calendars
//-----------------------------------------------------------------------
@DataProvider(name = "calendars")
- Chrono[][] data_of_calendars() {
- return new Chrono[][]{
- {HijrahChrono.INSTANCE},
- {ISOChrono.INSTANCE},
- {JapaneseChrono.INSTANCE},
- {MinguoChrono.INSTANCE},
- {ThaiBuddhistChrono.INSTANCE}};
+ Chronology[][] data_of_calendars() {
+ return new Chronology[][]{
+ {HijrahChronology.INSTANCE},
+ {IsoChronology.INSTANCE},
+ {JapaneseChronology.INSTANCE},
+ {MinguoChronology.INSTANCE},
+ {ThaiBuddhistChronology.INSTANCE}};
}
@Test(groups={"tck"}, dataProvider="calendars")
- public void test_badWithAdjusterChrono(Chrono chrono) {
+ public void test_badWithAdjusterChrono(Chronology chrono) {
LocalDate refDate = LocalDate.of(1900, 1, 1);
ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
- for (Chrono[] clist : data_of_calendars()) {
- Chrono chrono2 = clist[0];
+ for (Chronology[] clist : data_of_calendars()) {
+ Chronology chrono2 = clist[0];
ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
TemporalAdjuster adjuster = new FixedAdjuster(cdt2);
if (chrono != chrono2) {
try {
ChronoLocalDateTime<?> notreached = cdt.with(adjuster);
@@ -134,17 +131,17 @@
}
}
}
@Test(groups={"tck"}, dataProvider="calendars")
- public void test_badPlusAdjusterChrono(Chrono chrono) {
+ public void test_badPlusAdjusterChrono(Chronology chrono) {
LocalDate refDate = LocalDate.of(1900, 1, 1);
ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
- for (Chrono[] clist : data_of_calendars()) {
- Chrono chrono2 = clist[0];
+ for (Chronology[] clist : data_of_calendars()) {
+ Chronology chrono2 = clist[0];
ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
- TemporalAdder adjuster = new FixedAdjuster(cdt2);
+ TemporalAmount adjuster = new FixedAdjuster(cdt2);
if (chrono != chrono2) {
try {
ChronoLocalDateTime<?> notreached = cdt.plus(adjuster);
Assert.fail("WithAdjuster should have thrown a ClassCastException, "
+ "required: " + cdt + ", supplied: " + cdt2);
@@ -158,17 +155,17 @@
}
}
}
@Test(groups={"tck"}, dataProvider="calendars")
- public void test_badMinusAdjusterChrono(Chrono chrono) {
+ public void test_badMinusAdjusterChrono(Chronology chrono) {
LocalDate refDate = LocalDate.of(1900, 1, 1);
ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
- for (Chrono[] clist : data_of_calendars()) {
- Chrono chrono2 = clist[0];
+ for (Chronology[] clist : data_of_calendars()) {
+ Chronology chrono2 = clist[0];
ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
- TemporalSubtractor adjuster = new FixedAdjuster(cdt2);
+ TemporalAmount adjuster = new FixedAdjuster(cdt2);
if (chrono != chrono2) {
try {
ChronoLocalDateTime<?> notreached = cdt.minus(adjuster);
Assert.fail("WithAdjuster should have thrown a ClassCastException, "
+ "required: " + cdt + ", supplied: " + cdt2);
@@ -182,15 +179,15 @@
}
}
}
@Test(groups={"tck"}, dataProvider="calendars")
- public void test_badPlusTemporalUnitChrono(Chrono chrono) {
+ public void test_badPlusTemporalUnitChrono(Chronology chrono) {
LocalDate refDate = LocalDate.of(1900, 1, 1);
ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
- for (Chrono[] clist : data_of_calendars()) {
- Chrono chrono2 = clist[0];
+ for (Chronology[] clist : data_of_calendars()) {
+ Chronology chrono2 = clist[0];
ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
TemporalUnit adjuster = new FixedTemporalUnit(cdt2);
if (chrono != chrono2) {
try {
ChronoLocalDateTime<?> notreached = cdt.plus(1, adjuster);
@@ -206,15 +203,15 @@
}
}
}
@Test(groups={"tck"}, dataProvider="calendars")
- public void test_badMinusTemporalUnitChrono(Chrono chrono) {
+ public void test_badMinusTemporalUnitChrono(Chronology chrono) {
LocalDate refDate = LocalDate.of(1900, 1, 1);
ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
- for (Chrono[] clist : data_of_calendars()) {
- Chrono chrono2 = clist[0];
+ for (Chronology[] clist : data_of_calendars()) {
+ Chronology chrono2 = clist[0];
ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
TemporalUnit adjuster = new FixedTemporalUnit(cdt2);
if (chrono != chrono2) {
try {
ChronoLocalDateTime<?> notreached = cdt.minus(1, adjuster);
@@ -230,15 +227,15 @@
}
}
}
@Test(groups={"tck"}, dataProvider="calendars")
- public void test_badTemporalFieldChrono(Chrono chrono) {
+ public void test_badTemporalFieldChrono(Chronology chrono) {
LocalDate refDate = LocalDate.of(1900, 1, 1);
ChronoLocalDateTime cdt = chrono.date(refDate).atTime(LocalTime.NOON);
- for (Chrono[] clist : data_of_calendars()) {
- Chrono chrono2 = clist[0];
+ for (Chronology[] clist : data_of_calendars()) {
+ Chronology chrono2 = clist[0];
ChronoLocalDateTime<?> cdt2 = chrono2.date(refDate).atTime(LocalTime.NOON);
TemporalField adjuster = new FixedTemporalField(cdt2);
if (chrono != chrono2) {
try {
ChronoLocalDateTime<?> notreached = cdt.with(adjuster, 1);
@@ -257,11 +254,11 @@
//-----------------------------------------------------------------------
// isBefore, isAfter, isEqual
//-----------------------------------------------------------------------
@Test(groups={"tck"}, dataProvider="calendars")
- public void test_datetime_comparisons(Chrono chrono) {
+ public void test_datetime_comparisons(Chronology chrono) {
List<ChronoLocalDateTime<?>> dates = new ArrayList<>();
ChronoLocalDateTime<?> date = chrono.date(LocalDate.of(1900, 1, 1)).atTime(LocalTime.MIN);
// Insert dates in order, no duplicates
@@ -284,15 +281,15 @@
dates.add(date.plus(1, ChronoUnit.MONTHS));
dates.add(date.plus(1, ChronoUnit.YEARS));
dates.add(date.plus(100, ChronoUnit.YEARS));
// Check these dates against the corresponding dates for every calendar
- for (Chrono[] clist : data_of_calendars()) {
+ for (Chronology[] clist : data_of_calendars()) {
List<ChronoLocalDateTime<?>> otherDates = new ArrayList<>();
- Chrono chrono2 = clist[0];
+ Chronology chrono2 = clist[0];
for (ChronoLocalDateTime<?> d : dates) {
- otherDates.add(chrono2.date(d).atTime(d.getTime()));
+ otherDates.add(chrono2.date(d).atTime(d.toLocalTime()));
}
// Now compare the sequence of original dates with the sequence of converted dates
for (int i = 0; i < dates.size(); i++) {
ChronoLocalDateTime<?> a = dates.get(i);
@@ -322,29 +319,29 @@
//-----------------------------------------------------------------------
// Test Serialization of ISO via chrono API
//-----------------------------------------------------------------------
@Test( groups={"tck"}, dataProvider="calendars")
- public <C extends Chrono<C>> void test_ChronoLocalDateTimeSerialization(C chrono) throws Exception {
+ public void test_ChronoLocalDateTimeSerialization(Chronology chrono) throws Exception {
LocalDateTime ref = LocalDate.of(2000, 1, 5).atTime(12, 1, 2, 3);
- ChronoLocalDateTime<C> orginal = chrono.date(ref).atTime(ref.getTime());
+ ChronoLocalDateTime<?> orginal = chrono.date(ref).atTime(ref.toLocalTime());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baos);
out.writeObject(orginal);
out.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream in = new ObjectInputStream(bais);
- ChronoLocalDateTime<C> ser = (ChronoLocalDateTime<C>) in.readObject();
+ ChronoLocalDateTime<?> ser = (ChronoLocalDateTime<?>) in.readObject();
assertEquals(ser, orginal, "deserialized date is wrong");
}
/**
* FixedAdjusted returns a fixed Temporal in all adjustments.
* Construct an adjuster with the Temporal that should be returned from adjust.
*/
- static class FixedAdjuster implements TemporalAdjuster, TemporalAdder, TemporalSubtractor {
+ static class FixedAdjuster implements TemporalAdjuster, TemporalAmount {
private Temporal datetime;
FixedAdjuster(Temporal datetime) {
this.datetime = datetime;
}
@@ -362,10 +359,20 @@
@Override
public Temporal subtractFrom(Temporal ignore) {
return datetime;
}
+ @Override
+ public long get(TemporalUnit unit) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public List<TemporalUnit> getUnits() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
}
/**
* FixedTemporalUnit returns a fixed Temporal in all adjustments.
* Construct an FixedTemporalUnit with the Temporal that should be returned from doAdd.
@@ -391,22 +398,22 @@
public boolean isDurationEstimated() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public boolean isSupported(Temporal temporal) {
+ public boolean isSupportedBy(Temporal temporal) {
throw new UnsupportedOperationException("Not supported yet.");
}
@SuppressWarnings("unchecked")
@Override
- public <R extends Temporal> R doPlus(R dateTime, long periodToAdd) {
+ public <R extends Temporal> R addTo(R temporal, long amount) {
return (R) this.temporal;
}
@Override
- public <R extends Temporal> SimplePeriod between(R dateTime1, R dateTime2) {
+ public long between(Temporal temporal1, Temporal temporal2) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
/**
@@ -438,32 +445,26 @@
public ValueRange range() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public boolean doIsSupported(TemporalAccessor temporal) {
+ public boolean isSupportedBy(TemporalAccessor temporal) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public ValueRange doRange(TemporalAccessor temporal) {
+ public ValueRange rangeRefinedBy(TemporalAccessor temporal) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public long doGet(TemporalAccessor temporal) {
+ public long getFrom(TemporalAccessor temporal) {
throw new UnsupportedOperationException("Not supported yet.");
}
@SuppressWarnings("unchecked")
@Override
- public <R extends Temporal> R doWith(R temporal, long newValue) {
+ public <R extends Temporal> R adjustInto(R temporal, long newValue) {
return (R) this.temporal;
}
-
- @Override
- public boolean resolve(DateTimeBuilder builder, long value) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
}
}