### Question:
Month extends RegularTimePeriod implements Serializable { @Override public RegularTimePeriod next() { Month result; if (this.month != MonthConstants.DECEMBER) { result = new Month(this.month + 1, this.year); } else { if (this.year < 9999) { result = new Month(MonthConstants.JANUARY, this.year + 1); } else { result = null; } } return result; } Month();  Month(int month, int year);  Month(int month, Year year);  Month(Date time);  Month(Date time, TimeZone zone, Locale locale); Year getYear(); int getYearValue(); int getMonth(); @Override long getFirstMillisecond(); @Override long getLastMillisecond(); @Override void peg(Calendar calendar); @Override RegularTimePeriod previous(); @Override RegularTimePeriod next(); @Override long getSerialIndex(); @Override String toString(); @Override boolean equals(Object obj); @Override int hashCode(); @Override int compareTo(TimePeriod o1); @Override long getFirstMillisecond(Calendar calendar); @Override long getLastMillisecond(Calendar calendar); static Month parseMonth(String s);  }### Answer:
@Test public void testJan1900Next() { Month next = (Month) this.jan1900.next(); assertEquals(this.feb1900, next); }
@Test public void testDec9999Next() { Month next = (Month) this.dec9999.next(); assertNull(next); }
@Test public void testNext() { Month m = new Month(12, 2000); m = (Month) m.next(); assertEquals(new Year(2001), m.getYear()); assertEquals(1, m.getMonth()); m = new Month(12, 9999); assertNull(m.next()); }