/** * Copyright 2015-2017 The OpenZipkin Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package zipkin.autoconfigure.ui; import org.junit.After; import org.junit.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.boot.test.util.EnvironmentTestUtils.addEnvironment; public class ZipkinUiAutoConfigurationTest { AnnotationConfigApplicationContext context; @After public void close() { if (context != null) { context.close(); } } @Test public void indexHtmlFromClasspath() { context = createContext(); assertThat(context.getBean(ZipkinUiAutoConfiguration.class).indexHtml) .isNotNull(); } @Test public void canOverridesProperty_defaultLookback() { context = createContextWithOverridenProperty("zipkin.ui.defaultLookback:100"); assertThat(context.getBean(ZipkinUiProperties.class).getDefaultLookback()) .isEqualTo(100); } @Test public void canOverrideProperty_logsUrl() { final String url = "http://mycompany.com/kibana"; context = createContextWithOverridenProperty("zipkin.ui.logs-url:"+ url); assertThat(context.getBean(ZipkinUiProperties.class).getLogsUrl()).isEqualTo(url); } @Test public void logsUrlIsNullIfOverridenByEmpty() { context = createContextWithOverridenProperty("zipkin.ui.logs-url:"); assertThat(context.getBean(ZipkinUiProperties.class).getLogsUrl()).isNull(); } @Test public void logsUrlIsNullByDefault() { context = createContext(); assertThat(context.getBean(ZipkinUiProperties.class).getLogsUrl()).isNull(); } @Test(expected = NoSuchBeanDefinitionException.class) public void canOverridesProperty_disable() { context = createContextWithOverridenProperty("zipkin.ui.enabled:false"); context.getBean(ZipkinUiProperties.class); } private static AnnotationConfigApplicationContext createContext() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.register(PropertyPlaceholderAutoConfiguration.class, ZipkinUiAutoConfiguration.class); context.refresh(); return context; } private static AnnotationConfigApplicationContext createContextWithOverridenProperty(String pair) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); addEnvironment(context, pair); context.register(PropertyPlaceholderAutoConfiguration.class, ZipkinUiAutoConfiguration.class); context.refresh(); return context; } }