@@ -0,0 +1,3162 @@
+/**%0A * Copyright 2017 Pivotal Software, Inc.%0A * %3Cp%3E%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A * %3Cp%3E%0A * http://www.apache.org/licenses/LICENSE-2.0%0A * %3Cp%3E%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage io.micrometer.spring.jdbc;%0A%0Aimport javax.sql.DataSource;%0A%0Aimport org.springframework.beans.factory.NoSuchBeanDefinitionException;%0Aimport org.springframework.context.annotation.AnnotationConfigApplicationContext;%0Aimport org.springframework.context.annotation.Bean;%0Aimport org.springframework.context.annotation.Configuration;%0A%0Aimport io.micrometer.core.instrument.MeterRegistry;%0Aimport org.junit.jupiter.api.AfterEach;%0Aimport org.junit.jupiter.api.Test;%0A%0Aimport static org.assertj.core.api.Assertions.assertThat;%0Aimport static org.assertj.core.api.Assertions.assertThatThrownBy;%0Aimport static org.mockito.Mockito.mock;%0A%0A/**%0A * Tests for %7B@link DataSourcePoolMetricsAutoConfiguration%7D.%0A *%0A * @author Johnny Lim%0A */%0Aclass DataSourcePoolMetricsAutoConfigurationTest %7B%0A%0A    private AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();%0A%0A    @AfterEach%0A    void cleanUp() %7B%0A        if (this.context != null) %7B%0A            this.context.close();%0A        %7D%0A    %7D%0A%0A    @Test%0A    void backsOffWhenMeterRegistryIsMissing() %7B%0A        registerAndRefresh(DataSourceConfiguration.class,%0A                DataSourcePoolMetricsAutoConfiguration.class);%0A%0A        assertThatThrownBy(() -%3E this.context.getBean(DataSourcePoolMetricsAutoConfiguration.class))%0A            .isInstanceOf(NoSuchBeanDefinitionException.class);%0A    %7D%0A%0A    @Test%0A    void backsOffWhenDataSourceIsMissing() %7B%0A        registerAndRefresh(MeterRegistryConfiguration.class,%0A                DataSourcePoolMetricsAutoConfiguration.class);%0A%0A        assertThatThrownBy(() -%3E this.context.getBean(DataSourcePoolMetricsAutoConfiguration.class))%0A            .isInstanceOf(NoSuchBeanDefinitionException.class);%0A    %7D%0A%0A    @Test%0A    void autoConfigurationKicksIn() %7B%0A        registerAndRefresh(DataSourceConfiguration.class, MeterRegistryConfiguration.class,%0A                DataSourcePoolMetricsAutoConfiguration.class);%0A%0A        assertThat(this.context.getBean(DataSourcePoolMetricsAutoConfiguration.class)).isNotNull();%0A    %7D%0A%0A    private void registerAndRefresh(Class%3C?%3E... configurationClasses) %7B%0A        this.context.register(configurationClasses);%0A        this.context.refresh();%0A    %7D%0A%0A    @Configuration%0A    static class DataSourceConfiguration %7B%0A%0A        @Bean%0A        public DataSource dataSource() %7B%0A            return mock(DataSource.class);%0A        %7D%0A%0A    %7D%0A%0A    @Configuration%0A    static class MeterRegistryConfiguration %7B%0A%0A        @Bean%0A        public MeterRegistry meterRegistry() %7B%0A            return mock(MeterRegistry.class);%0A        %7D%0A%0A    %7D%0A%0A%7D%0A

Add tests for DataSourcePoolMetricsAutoConfiguration ConditionalOnBean