package io.dropwizard.logging; import com.google.common.io.Resources; import io.dropwizard.configuration.YamlConfigurationFactory; import io.dropwizard.jackson.Jackson; import io.dropwizard.validation.BaseValidator; import org.junit.Test; import java.io.File; import java.net.URISyntaxException; import java.util.TimeZone; import static org.assertj.core.api.Assertions.assertThat; public class AppenderFactoryCustomTimeZone { static { BootstrapLogging.bootstrap(); } private final YamlConfigurationFactory<ConsoleAppenderFactory> factory = new YamlConfigurationFactory<>( ConsoleAppenderFactory.class, BaseValidator.newValidator(), Jackson.newObjectMapper(), "dw"); private static File loadResource(String resourceName) throws URISyntaxException { return new File(Resources.getResource(resourceName).toURI()); } @Test public void testLoadAppenderWithTimeZoneInFullFormat() throws Exception { final ConsoleAppenderFactory appender = factory.build(loadResource("yaml/appender_with_time_zone_in_full_format.yml")); assertThat(appender.getTimeZone().getID()).isEqualTo("America/Los_Angeles"); } @Test public void testLoadAppenderWithTimeZoneInCustomFormat() throws Exception { final ConsoleAppenderFactory appender = factory.build(loadResource("yaml/appender_with_custom_time_zone_format.yml")); assertThat(appender.getTimeZone().getID()).isEqualTo("GMT-02:00"); } @Test public void testLoadAppenderWithNoTimeZone() throws Exception { final ConsoleAppenderFactory appender = factory.build(loadResource("yaml/appender_with_no_time_zone.yml")); assertThat(appender.getTimeZone().getID()).isEqualTo("UTC"); } @Test public void testLoadAppenderWithUtcTimeZone() throws Exception { final ConsoleAppenderFactory appender = factory.build(loadResource("yaml/appender_with_utc_time_zone.yml")); assertThat(appender.getTimeZone().getID()).isEqualTo("UTC"); } @Test public void testLoadAppenderWithWrongTimeZone() throws Exception { final ConsoleAppenderFactory appender = factory.build(loadResource("yaml/appender_with_wrong_time_zone.yml")); assertThat(appender.getTimeZone().getID()).isEqualTo("GMT"); } @Test public void testLoadAppenderWithSystemTimeZone() throws Exception { final ConsoleAppenderFactory appender = factory.build(loadResource("yaml/appender_with_system_time_zone.yml")); assertThat(appender.getTimeZone()).isEqualTo(TimeZone.getDefault()); } }