package net.time4j.i18n;
import net.time4j.PlainDate;
import net.time4j.Weekday;
import net.time4j.Weekmodel;
import java.util.Locale;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(JUnit4.class)
public class WeekdataTest {
@Test
public void isWeekendISO() {
assertThat(
PlainDate.of(2014, 4, 4).isWeekend(Locale.ROOT),
is(false));
assertThat(
PlainDate.of(2014, 4, 5).isWeekend(Locale.ROOT),
is(true));
assertThat(
PlainDate.of(2014, 4, 6).isWeekend(Locale.ROOT),
is(true));
assertThat(
PlainDate.of(2014, 4, 7).isWeekend(Locale.ROOT),
is(false));
}
@Test
public void isWeekendUS() {
assertThat(
PlainDate.of(2014, 4, 4).isWeekend(Locale.US),
is(false));
assertThat(
PlainDate.of(2014, 4, 5).isWeekend(Locale.US),
is(true));
assertThat(
PlainDate.of(2014, 4, 6).isWeekend(Locale.US),
is(true));
assertThat(
PlainDate.of(2014, 4, 7).isWeekend(Locale.US),
is(false));
}
@Test
public void isWeekendYemen() {
Locale yemen = new Locale("ar", "Ye"); // Friday + Saturday in CLDR v30
assertThat(
PlainDate.of(2014, 4, 3).isWeekend(yemen),
is(false));
assertThat(
PlainDate.of(2014, 4, 4).isWeekend(yemen),
is(true));
assertThat(
PlainDate.of(2014, 4, 5).isWeekend(yemen),
is(true));
assertThat(
PlainDate.of(2014, 4, 6).isWeekend(yemen),
is(false));
}
@Test
public void modelUS() {
assertThat(
Weekmodel.of(Locale.US),
is(Weekmodel.of(Weekday.SUNDAY, 1)));
assertThat(
Weekmodel.of(Locale.US).getFirstDayOfWeek(),
is(Weekday.SUNDAY));
assertThat(
Weekmodel.of(Locale.US).getMinimalDaysInFirstWeek(),
is(1));
assertThat(
Weekmodel.of(Locale.US).getStartOfWeekend(),
is(Weekday.SATURDAY));
assertThat(
Weekmodel.of(Locale.US).getEndOfWeekend(),
is(Weekday.SUNDAY));
assertThat(
Weekmodel.of(Locale.US).getFirstWorkday(),
is(Weekday.MONDAY));
}
@Test
public void modelAfghanistan() {
Locale afghanistan = new Locale("fa", "AF");
assertThat(
Weekmodel.of(afghanistan),
is(Weekmodel.of(
Weekday.SATURDAY, 1, Weekday.THURSDAY, Weekday.FRIDAY)));
assertThat(
Weekmodel.of(afghanistan).getFirstDayOfWeek(),
is(Weekday.SATURDAY));
assertThat(
Weekmodel.of(afghanistan).getMinimalDaysInFirstWeek(),
is(1));
assertThat(
Weekmodel.of(afghanistan).getStartOfWeekend(),
is(Weekday.THURSDAY));
assertThat(
Weekmodel.of(afghanistan).getEndOfWeekend(),
is(Weekday.FRIDAY));
assertThat(
Weekmodel.of(afghanistan).getFirstWorkday(),
is(Weekday.SATURDAY));
}
@Test
public void modelIndia() {
Locale india = new Locale("", "IN");
assertThat(
Weekmodel.of(india),
is(Weekmodel.of(
Weekday.SUNDAY, 1, Weekday.SUNDAY, Weekday.SUNDAY)));
assertThat(
Weekmodel.of(india).getFirstDayOfWeek(),
is(Weekday.SUNDAY));
assertThat(
Weekmodel.of(india).getMinimalDaysInFirstWeek(),
is(1));
assertThat(
Weekmodel.of(india).getStartOfWeekend(),
is(Weekday.SUNDAY));
assertThat(
Weekmodel.of(india).getEndOfWeekend(),
is(Weekday.SUNDAY));
assertThat(
Weekmodel.of(india).getFirstWorkday(),
is(Weekday.MONDAY));
}
@Test
public void weekend() {
Locale afghanistan = new Locale("fa", "AF");
PlainDate date = PlainDate.of(2013, 3, 30); // Samstag
assertThat(date.matches(Weekmodel.ISO.weekend()), is(true));
assertThat(date.matches(Weekmodel.of(afghanistan).weekend()), is(false));
date = PlainDate.of(2013, 3, 28); // Donnerstag
assertThat(date.matches(Weekmodel.ISO.weekend()), is(false));
assertThat(date.matches(Weekmodel.of(afghanistan).weekend()), is(true));
}
}