package net.time4j;
import net.time4j.format.OutputContext;
import net.time4j.format.TextWidth;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Locale;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(JUnit4.class)
public class MonthValueTest {
@Test
public void valueOf_int() {
for (int i = 0; i < 12; i++) {
assertThat(Month.valueOf(i + 1), is(Month.values()[i]));
}
}
@Test
public void getValue() {
for (int i = 0; i < 12; i++) {
assertThat(Month.values()[i].getValue(), is(i + 1));
}
}
@Test
public void getQuarterOfYear() {
assertThat(Month.JANUARY.getQuarterOfYear(), is(Quarter.Q1));
assertThat(Month.FEBRUARY.getQuarterOfYear(), is(Quarter.Q1));
assertThat(Month.MARCH.getQuarterOfYear(), is(Quarter.Q1));
assertThat(Month.APRIL.getQuarterOfYear(), is(Quarter.Q2));
assertThat(Month.MAY.getQuarterOfYear(), is(Quarter.Q2));
assertThat(Month.JUNE.getQuarterOfYear(), is(Quarter.Q2));
assertThat(Month.JULY.getQuarterOfYear(), is(Quarter.Q3));
assertThat(Month.AUGUST.getQuarterOfYear(), is(Quarter.Q3));
assertThat(Month.SEPTEMBER.getQuarterOfYear(), is(Quarter.Q3));
assertThat(Month.OCTOBER.getQuarterOfYear(), is(Quarter.Q4));
assertThat(Month.NOVEMBER.getQuarterOfYear(), is(Quarter.Q4));
assertThat(Month.DECEMBER.getQuarterOfYear(), is(Quarter.Q4));
}
@Test
public void getLength() {
assertThat(Month.JANUARY.getLength(2012), is(31));
assertThat(Month.FEBRUARY.getLength(2012), is(29));
assertThat(Month.FEBRUARY.getLength(1900), is(28));
assertThat(Month.MARCH.getLength(2012), is(31));
assertThat(Month.APRIL.getLength(2012), is(30));
assertThat(Month.MAY.getLength(2012), is(31));
assertThat(Month.JUNE.getLength(2012), is(30));
assertThat(Month.JULY.getLength(2012), is(31));
assertThat(Month.AUGUST.getLength(2012), is(31));
assertThat(Month.SEPTEMBER.getLength(2012), is(30));
assertThat(Month.OCTOBER.getLength(2012), is(31));
assertThat(Month.NOVEMBER.getLength(2012), is(30));
assertThat(Month.DECEMBER.getLength(2012), is(31));
}
@Test
public void next() {
assertThat(Month.FEBRUARY.next(), is(Month.MARCH));
assertThat(Month.DECEMBER.next(), is(Month.JANUARY));
}
@Test
public void previous() {
assertThat(Month.FEBRUARY.previous(), is(Month.JANUARY));
assertThat(Month.JANUARY.previous(), is(Month.DECEMBER));
}
@Test
public void roll() {
assertThat(Month.FEBRUARY.roll(-2), is(Month.DECEMBER));
}
@Test
public void test() {
assertThat(Month.FEBRUARY.test(PlainDate.of(2012, 2, 17)), is(true));
}
@Test
public void atStartOfQuarterYear() {
assertThat(Month.atStartOfQuarterYear(Quarter.Q1), is(Month.JANUARY));
assertThat(Month.atStartOfQuarterYear(Quarter.Q2), is(Month.APRIL));
assertThat(Month.atStartOfQuarterYear(Quarter.Q3), is(Month.JULY));
assertThat(Month.atStartOfQuarterYear(Quarter.Q4), is(Month.OCTOBER));
}
@Test
public void atEndOfQuarterYear() {
assertThat(Month.atEndOfQuarterYear(Quarter.Q1), is(Month.MARCH));
assertThat(Month.atEndOfQuarterYear(Quarter.Q2), is(Month.JUNE));
assertThat(Month.atEndOfQuarterYear(Quarter.Q3), is(Month.SEPTEMBER));
assertThat(Month.atEndOfQuarterYear(Quarter.Q4), is(Month.DECEMBER));
}
@Test
public void czechMonthInFormatContext() {
assertThat(
Month.JANUARY.getDisplayName(new Locale("cs"), TextWidth.WIDE, OutputContext.FORMAT),
is("ledna")
);
}
@Test
public void czechMonthInStandaloneContext() {
assertThat(
Month.JANUARY.getDisplayName(new Locale("cs"), TextWidth.WIDE, OutputContext.STANDALONE),
is("leden")
);
}
}