package com.vladmihalcea.flexypool.adaptor; import com.vladmihalcea.flexypool.FlexyPoolDataSource; import com.vladmihalcea.flexypool.metric.Histogram; import com.vladmihalcea.flexypool.metric.Metrics; import com.vladmihalcea.flexypool.metric.MetricsFactory; import com.vladmihalcea.flexypool.metric.Timer; import com.vladmihalcea.flexypool.common.ConfigurationProperties; import org.mockito.Mockito; import static org.mockito.Mockito.when; /** * MockMetricsFactory - Mock MetricsFactory * * @author Vlad Mihalcea */ public class MockMetricsFactory implements MetricsFactory { private static final Metrics metrics = Mockito.mock(Metrics.class); private static final Timer overallConnectionAcquireTimer = Mockito.mock(Timer.class); private static final Histogram concurrentConnectionCountHistogram = Mockito.mock(Histogram.class); private static final Histogram concurrentConnectionRequestCountHistogram = Mockito.mock(Histogram.class); private static final Timer connectionLeaseMillisTimer = Mockito.mock(Timer.class); private static final Timer connectionAcquireMillisTimer = Mockito.mock(Timer.class); @Override public Metrics newInstance(ConfigurationProperties configurationProperties) { Mockito.reset(metrics); when(metrics.timer(FlexyPoolDataSource.OVERALL_CONNECTION_ACQUIRE_MILLIS)).thenReturn(overallConnectionAcquireTimer); when(metrics.histogram(FlexyPoolDataSource.CONCURRENT_CONNECTIONS_HISTOGRAM)).thenReturn(concurrentConnectionCountHistogram); when(metrics.histogram(FlexyPoolDataSource.CONCURRENT_CONNECTION_REQUESTS_HISTOGRAM)).thenReturn(concurrentConnectionRequestCountHistogram); when(metrics.timer(FlexyPoolDataSource.CONNECTION_LEASE_MILLIS)).thenReturn(connectionLeaseMillisTimer); when(metrics.timer(AbstractPoolAdapter.CONNECTION_ACQUIRE_MILLIS)).thenReturn(connectionAcquireMillisTimer); return metrics; } public Metrics getMetrics() { return metrics; } public Timer getOverallConnectionAcquireTimer() { return overallConnectionAcquireTimer; } public Histogram getConcurrentConnectionCountHistogram() { return concurrentConnectionCountHistogram; } public Histogram getConcurrentConnectionRequestCountHistogram() { return concurrentConnectionRequestCountHistogram; } public Timer getConnectionLeaseMillisTimer() { return connectionLeaseMillisTimer; } }