package com.spotify.heroic.statistics.semantic; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import com.spotify.heroic.async.AsyncObservable; import com.spotify.heroic.common.Statistics; import com.spotify.heroic.metadata.FindSeries; import com.spotify.heroic.metadata.FindSeriesIds; import com.spotify.heroic.metadata.FindSeriesIdsStream; import com.spotify.heroic.metadata.FindSeriesStream; import com.spotify.heroic.metadata.MetadataBackend; import com.spotify.metrics.core.SemanticMetricRegistry; import org.junit.Test; public class SemanticMetadataBackendReporterTest { @Test public void testDecorated() { final SemanticMetricRegistry registry = mock(SemanticMetricRegistry.class); final SemanticMetadataBackendReporter reporter = new SemanticMetadataBackendReporter(registry); final MetadataBackend backend = mock(MetadataBackend.class); final MetadataBackend decorated = reporter.decorate(backend); // TODO: Currently covers the methods which have defender methods, but should cover all. { final AsyncObservable<FindSeriesIdsStream> response = mock(AsyncObservable.class); final FindSeriesIds.Request request = mock(FindSeriesIds.Request.class); doReturn(response).when(backend).findSeriesIdsStream(request); assertEquals(response, decorated.findSeriesIdsStream(request)); verify(backend).findSeriesIdsStream(request); } { final AsyncObservable<FindSeriesStream> response = mock(AsyncObservable.class); final FindSeries.Request request = mock(FindSeries.Request.class); doReturn(response).when(backend).findSeriesStream(request); assertEquals(response, decorated.findSeriesStream(request)); verify(backend).findSeriesStream(request); } { final Statistics statistics = mock(Statistics.class); doReturn(statistics).when(backend).getStatistics(); assertEquals(statistics, decorated.getStatistics()); verify(backend).getStatistics(); } } }