package net.time4j.tz.other; import net.time4j.Moment; import net.time4j.format.expert.ChronoFormatter; import net.time4j.format.expert.PatternType; import net.time4j.tz.NameStyle; import net.time4j.tz.OffsetSign; import net.time4j.tz.Timezone; import net.time4j.tz.ZonalOffset; import java.text.ParseException; 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 MilitaryZoneTest { @Test public void getOffsetAlpha() { assertThat( MilitaryZone.ALPHA.getOffset(), is(ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 1))); } @Test public void getOffsetBravo() { assertThat( MilitaryZone.BRAVO.getOffset(), is(ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 2))); } @Test public void getOffsetCharlie() { assertThat( MilitaryZone.CHARLIE.getOffset(), is(ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 3))); } @Test public void getOffsetDelta() { assertThat( MilitaryZone.DELTA.getOffset(), is(ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 4))); } @Test public void getOffsetEcho() { assertThat( MilitaryZone.ECHO.getOffset(), is(ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 5))); } @Test public void getDisplayNameZulu() { Timezone tz = Timezone.of(MilitaryZone.ZULU); assertThat( tz.getDisplayName(NameStyle.LONG_STANDARD_TIME, Locale.ROOT), is("Zulu")); assertThat( tz.getDisplayName(NameStyle.SHORT_STANDARD_TIME, Locale.ROOT), is("Z")); } @Test public void getDisplayNameMike() { Timezone tz = Timezone.of("MILITARY~UTC+12:00"); assertThat( tz.getDisplayName(NameStyle.LONG_STANDARD_TIME, Locale.ROOT), is("Mike")); assertThat( tz.getDisplayName(NameStyle.SHORT_STANDARD_TIME, Locale.ROOT), is("M")); } @Test public void canonicalRomeo() { assertThat(MilitaryZone.ROMEO.canonical(), is("MILITARY~UTC-05:00")); } @Test public void militaryTime() { ChronoFormatter<Moment> formatter = ChronoFormatter.setUp(Moment.class, Locale.US) .addPattern("HHmmz", PatternType.CLDR).build() .withTimezone(MilitaryZone.FOXTROT); String s = formatter.format(Moment.UNIX_EPOCH); assertThat(s, is("0600F")); // zero six hundred Foxtrot } @Test public void print() { ChronoFormatter<Moment> formatter = ChronoFormatter.setUp(Moment.class, Locale.FRENCH) .addPattern("yyyy-MM-dd HH:mm zzzz", PatternType.CLDR).build() .withTimezone(MilitaryZone.FOXTROT); String s = formatter.format(Moment.UNIX_EPOCH); assertThat(s, is("1970-01-01 06:00 Foxtrot")); } @Test public void parse() throws ParseException { ChronoFormatter<Moment> formatter = ChronoFormatter.setUp(Moment.class, Locale.FRENCH) .addPattern("yyyy-MM-dd HH:mm zzzz", PatternType.CLDR).build() .withTimezone(ZonalOffset.UTC); String input = "1970-01-01 06:00 Foxtrot"; Moment m = formatter.parse(input); assertThat(m, is(Moment.UNIX_EPOCH)); } }