package com.spotify.heroic.metric;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import com.spotify.heroic.common.GroupSet;
import com.spotify.heroic.common.Groups;
import com.spotify.heroic.common.OptionalLimit;
import com.spotify.heroic.metadata.MetadataManager;
import com.spotify.heroic.querylogging.QueryLogger;
import com.spotify.heroic.querylogging.QueryLoggerFactory;
import com.spotify.heroic.statistics.MetricBackendReporter;
import eu.toolchain.async.AsyncFramework;
import eu.toolchain.async.AsyncFuture;
import java.util.Collections;
import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
/*
* Start of a test for LocalMetricManager
*/
@RunWith(MockitoJUnitRunner.class)
public class LocalMetricManagerTest {
private LocalMetricManager manager;
@Mock
private AsyncFramework async;
@Mock
private MetadataManager metadataManager;
@Mock
private MetricBackendReporter reporter;
@Mock
private MetadataManager metadata;
@Mock
private MetricBackend metricBackend;
@Mock
private AsyncFuture<FetchData> fetchDataFuture;
@Before
public void setup() {
final OptionalLimit groupLimit = OptionalLimit.empty();
final OptionalLimit seriesLimit = OptionalLimit.empty();
final OptionalLimit aggregationLimit = OptionalLimit.empty();
final OptionalLimit dataLimit = OptionalLimit.empty();
final int fetchParallelism = 20;
final boolean failOnLimits = true;
final Groups groups = Groups.of("foo");
doReturn(groups).when(metricBackend).groups();
final GroupSet<MetricBackend> groupSet =
GroupSet.build(Collections.singletonList(metricBackend), Optional.empty());
final QueryLogger queryLogger = mock(QueryLogger.class);
final QueryLoggerFactory queryLoggerFactory = mock(QueryLoggerFactory.class);
when(queryLoggerFactory.create(any())).thenReturn(queryLogger);
manager = new LocalMetricManager(groupLimit, seriesLimit, aggregationLimit, dataLimit,
fetchParallelism, failOnLimits, async, groupSet, metadata, reporter,
queryLoggerFactory);
}
@Test
public void testUseDefaultBackend() {
assertNotNull(manager.useDefaultGroup());
}
}