package net.time4j;
import net.time4j.format.Attributes;
import java.math.BigDecimal;
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 TimeCreationTest {
@Test
public void ofHourMinuteSecondNano() {
PlainTime time = PlainTime.of(13, 24, 59, 123456789);
assertThat(time.getHour(), is(13));
assertThat(time.getMinute(), is(24));
assertThat(time.getSecond(), is(59));
assertThat(time.getNanosecond(), is(123456789));
}
@Test
public void ofHourMinuteSecond() {
PlainTime time = PlainTime.of(13, 24, 59);
assertThat(time.getHour(), is(13));
assertThat(time.getMinute(), is(24));
assertThat(time.getSecond(), is(59));
assertThat(time.getNanosecond(), is(0));
}
@Test
public void ofHourMinute() {
PlainTime time = PlainTime.of(13, 24);
assertThat(time.getHour(), is(13));
assertThat(time.getMinute(), is(24));
assertThat(time.getSecond(), is(0));
assertThat(time.getNanosecond(), is(0));
}
@Test
public void ofHour() {
PlainTime time = PlainTime.of(13);
assertThat(time.getHour(), is(13));
assertThat(time.getMinute(), is(0));
assertThat(time.getSecond(), is(0));
assertThat(time.getNanosecond(), is(0));
}
@Test
public void ofBigDecimalZero() {
PlainTime time = PlainTime.of(BigDecimal.ZERO);
assertThat(time, is(PlainTime.of(0)));
}
@Test
public void ofBigDecimalOne() {
PlainTime time = PlainTime.of(new BigDecimal("24"));
assertThat(time, is(PlainTime.of(24)));
}
@Test
public void ofBigDecimalHalf() {
PlainTime time = PlainTime.of(new BigDecimal("12.5"));
assertThat(time, is(PlainTime.of(12, 30)));
}
@Test(expected=IllegalArgumentException.class)
public void ofHourMinuteEx() {
PlainTime.of(24, 1);
}
@Test(expected=IllegalArgumentException.class)
public void merge() {
PlainTime.axis().createFrom(
Moment.UNIX_EPOCH, Attributes.empty(), false, false);
}
@Test
public void mergeLax() {
assertThat(
PlainTime.axis().createFrom(
Moment.UNIX_EPOCH,
Attributes.empty(),
true,
false),
is(PlainTime.midnightAtStartOfDay()));
}
}