Package com.vladmihalcea.flexypool.metric.codahale

Source Code of com.vladmihalcea.flexypool.metric.codahale.CodahaleMetricsTest

package com.vladmihalcea.flexypool.metric.codahale;

import com.codahale.metrics.Reservoir;
import com.vladmihalcea.flexypool.metric.Histogram;
import com.vladmihalcea.flexypool.metric.Metrics;
import com.vladmihalcea.flexypool.metric.Timer;
import com.vladmihalcea.flexypool.util.ConfigurationProperties;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.*;

/**
* CodahaleMetricsTest - CodahaleMetrics Test
*
* @author Vlad Mihalcea
*/
public class CodahaleMetricsTest {

    @Mock
    private ConfigurationProperties configurationProperties;

    @Mock
    private ReservoirFactory reservoirFactory;

    @Mock
    private Reservoir reservoir;

    @Before
    public void before() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void testHistogram() {
        CodahaleMetrics codahaleMetrics = new CodahaleMetrics(configurationProperties, reservoirFactory);
        when(reservoirFactory.newInstance(com.codahale.metrics.Histogram.class, "histo")).thenReturn(reservoir);
        Histogram histogram = codahaleMetrics.histogram("histo");
        verify(reservoirFactory, times(1)).newInstance(com.codahale.metrics.Histogram.class, "histo");
        assertNotNull(histogram);
    }

    @Test
    public void testTimer() {
        CodahaleMetrics codahaleMetrics = new CodahaleMetrics(configurationProperties, reservoirFactory);
        when(reservoirFactory.newInstance(com.codahale.metrics.Timer.class, "timer")).thenReturn(reservoir);
        Timer timer = codahaleMetrics.timer("timer");
        verify(reservoirFactory, times(1)).newInstance(com.codahale.metrics.Timer.class, "timer");
        assertNotNull(timer);
    }

    @Test
    public void testStartStopUsingDefaultConfiguration() {
        when(configurationProperties.isJmxEnabled()).thenReturn(true);
        when(configurationProperties.getMetricLogReporterMillis()).thenReturn(5L);
        testStartStop(configurationProperties);
    }

    @Test
    public void testStartStopUsingNoJmx() {
        when(configurationProperties.isJmxEnabled()).thenReturn(false);
        when(configurationProperties.getMetricLogReporterMillis()).thenReturn(5L);
        testStartStop(configurationProperties);
    }

    public void testStartStop(ConfigurationProperties currentConfiguration) {
        Metrics codahaleMetrics = CodahaleMetrics.FACTORY.newInstance(currentConfiguration);
        codahaleMetrics.histogram("histo");
        codahaleMetrics.timer("timer");
        codahaleMetrics.start();
        codahaleMetrics.stop();
    }
}
TOP

Related Classes of com.vladmihalcea.flexypool.metric.codahale.CodahaleMetricsTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.