package cf.dropsonde.spring.boot; import cf.dropsonde.metron.MetronClient; import org.hamcrest.Matchers; import org.junit.Test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Configuration; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; public class TestAutoConfiguration { @Configuration @EnableAutoConfiguration static class AutoConfiguration {} @Test public void testAutoConfiguration() { try (ConfigurableApplicationContext context = new SpringApplication(AutoConfiguration.class).run()) { assertThat(context, notNullValue()); assertThat(context.getBean(MetronClient.class), notNullValue()); } } @Test public void disableAutoConfiguration() { SpringApplication springApplication = new SpringApplication(AutoConfiguration.class); springApplication.setAdditionalProfiles("disableAutoConfig"); try (ConfigurableApplicationContext context = springApplication.run()) { assertThat(context.getBeansOfType(MetronClient.class).entrySet(), Matchers.iterableWithSize(0)); } } }