package com.hubspot.jinjava.objects.date; import static org.assertj.core.api.Assertions.assertThat; import java.time.ZonedDateTime; import java.util.Locale; import org.junit.Before; import org.junit.Test; public class StrftimeFormatterTest { ZonedDateTime d; @Before public void setup() { Locale.setDefault(Locale.ENGLISH); d = ZonedDateTime.parse("2013-11-06T14:22:00.000+00:00"); } @Test public void testUtf8Chars() { assertThat(StrftimeFormatter.format(d, "%Y年%m月%d日")).isEqualTo("2013年11月06日"); } @Test public void testDefaultFormat() { assertThat(StrftimeFormatter.format(d)).isEqualTo("14:22 / 06-11-2013"); } @Test public void testCommentsFormat() { assertThat(StrftimeFormatter.format(d, "%B %d, %Y, at %I:%M %p")) .isEqualTo("November 06, 2013, at 02:22 PM"); } @Test public void testFormatWithDash() { assertThat(StrftimeFormatter.format(d, "%B %-d, %Y")).isEqualTo("November 6, 2013"); } @Test public void testWithNoPcts() { assertThat(StrftimeFormatter.format(d, "MMMM yyyy")).isEqualTo("November 2013"); } @Test public void testDateTime() { assertThat(StrftimeFormatter.format(d, "%c")).isEqualTo("Wed Nov 06 14:22:00 2013"); } @Test public void testDate() { assertThat(StrftimeFormatter.format(d, "%x")).isEqualTo("11/06/13"); } @Test public void testDayOfWeekNumber() { assertThat(StrftimeFormatter.format(d, "%w")).isEqualTo("4"); } @Test public void testTime() { assertThat(StrftimeFormatter.format(d, "%X")).isEqualTo("14:22:00"); } @Test public void testWithLL() { assertThat(StrftimeFormatter.format(d, "yyyy/LL/dd HH:mm")).isEqualTo("2013/11/06 14:22"); } @Test public void testPaddedMinFmt() { ZonedDateTime dateTime = ZonedDateTime.parse("2013-11-06T04:02:00.000+00:00"); assertThat(StrftimeFormatter.format(dateTime, "%I")).isEqualTo("04"); assertThat(StrftimeFormatter.format(dateTime, "%l")).isEqualTo("4"); } @Test public void testFinnishMonths() { assertThat(StrftimeFormatter.formatter("long").withLocale(Locale.forLanguageTag("fi")).format(d)) .isEqualTo("6. marraskuuta 2013 klo 14.22.00"); } }