diff options
Diffstat (limited to 'container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java')
-rw-r--r-- | container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java | 109 |
1 files changed, 34 insertions, 75 deletions
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java index 57a9ba4abdb..68c1ae10ec6 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java @@ -3,103 +3,63 @@ package com.yahoo.container.jdisc.state; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.inject.AbstractModule; +import com.yahoo.component.ComponentId; +import com.yahoo.component.provider.ComponentRegistry; import com.yahoo.container.core.ApplicationMetadataConfig; +import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.container.jdisc.config.HealthMonitorConfig; -import com.yahoo.jdisc.Metric; -import com.yahoo.jdisc.Response; import com.yahoo.jdisc.Timer; -import com.yahoo.jdisc.application.ContainerBuilder; -import com.yahoo.jdisc.application.MetricConsumer; -import com.yahoo.jdisc.handler.BufferedContentChannel; -import com.yahoo.jdisc.handler.ContentChannel; -import com.yahoo.jdisc.handler.ResponseHandler; -import com.yahoo.jdisc.test.TestDriver; import com.yahoo.metrics.MetricsPresentationConfig; -import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; -import java.io.InputStreamReader; -import java.io.Reader; -import java.nio.charset.StandardCharsets; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; /** - * @author Simon Thoresen Hult * @author gjoranv */ public class StateHandlerTestBase { final static long SNAPSHOT_INTERVAL = TimeUnit.SECONDS.toMillis(300); final static long META_GENERATION = 69; - static final String APPLICATION_NAME = "state-handler-test-base"; - TestDriver driver; - StateMonitor monitor; - Metric metric; + + static final String URI_BASE = "http://localhost"; + + static StateMonitor monitor; + static RequestHandlerTestDriver testDriver; + + static HealthMonitorConfig healthMonitorConfig; + static ApplicationMetadataConfig applicationMetadataConfig; + static MetricsPresentationConfig metricsPresentationConfig; + static MetricsPacketsHandlerConfig metricsPacketsHandlerConfig; + final AtomicLong currentTimeMillis = new AtomicLong(0); + Timer timer; - @Before - public void startTestDriver() { - Timer timer = this.currentTimeMillis::get; - this.driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(new AbstractModule() { - @Override - protected void configure() { - bind(Timer.class).toInstance(timer); - } - }); - ContainerBuilder builder = driver.newContainerBuilder(); - HealthMonitorConfig healthMonitorConfig = - new HealthMonitorConfig( - new HealthMonitorConfig.Builder() - .snapshot_interval(TimeUnit.MILLISECONDS.toSeconds(SNAPSHOT_INTERVAL)) - .initialStatus("up")); - this.monitor = new StateMonitor(healthMonitorConfig, timer, null); - builder.guiceModules().install(new AbstractModule() { + MockSnapshotProvider snapshotProvider; + ComponentRegistry<SnapshotProvider> snapshotProviderRegistry; - @Override - protected void configure() { - bind(StateMonitor.class).toInstance(monitor); - bind(MetricConsumer.class).toProvider(MetricConsumerProviders.wrap(monitor)); - bind(ApplicationMetadataConfig.class).toInstance(new ApplicationMetadataConfig( - new ApplicationMetadataConfig.Builder().generation(META_GENERATION))); - bind(MetricsPresentationConfig.class) - .toInstance(new MetricsPresentationConfig(new MetricsPresentationConfig.Builder())); - bind(MetricsPacketsHandlerConfig.class).toInstance(new MetricsPacketsHandlerConfig( - new MetricsPacketsHandlerConfig.Builder().application(APPLICATION_NAME))); - } - }); - builder.serverBindings().bind("http://*/*", builder.getInstance(StateHandler.class)); - builder.serverBindings().bind("http://*/metrics-packets", builder.getInstance(MetricsPacketsHandler.class)); - driver.activateContainer(builder); - metric = builder.getInstance(Metric.class); + @BeforeClass + public static void setupClass() { + metricsPresentationConfig = new MetricsPresentationConfig(new MetricsPresentationConfig.Builder()); + healthMonitorConfig = new HealthMonitorConfig(new HealthMonitorConfig.Builder() + .initialStatus("up")); + applicationMetadataConfig = new ApplicationMetadataConfig(new ApplicationMetadataConfig.Builder() + .generation(META_GENERATION)); } - @After - public void stopTestDriver() { - assertTrue(driver.close()); + @Before + public void setupSnapshotProvider() { + timer = currentTimeMillis::get; + snapshotProvider = new MockSnapshotProvider(); + snapshotProviderRegistry = new ComponentRegistry<>(); + snapshotProviderRegistry.register(new ComponentId("foo"), snapshotProvider); + monitor = new StateMonitor(healthMonitorConfig); } - String requestAsString(String requestUri) throws Exception { - final BufferedContentChannel content = new BufferedContentChannel(); - Response response = driver.dispatchRequest(requestUri, new ResponseHandler() { - - @Override - public ContentChannel handleResponse(Response response) { - return content; - } - }).get(60, TimeUnit.SECONDS); - assertNotNull(response); - assertEquals(Response.Status.OK, response.getStatus()); - StringBuilder str = new StringBuilder(); - Reader in = new InputStreamReader(content.toStream(), StandardCharsets.UTF_8); - for (int c; (c = in.read()) != -1; ) { - str.append((char)c); - } - return str.toString(); + String requestAsString(String requestUri) { + return testDriver.sendRequest(requestUri).readAll(); } JsonNode requestAsJson(String requestUri) throws Exception { @@ -109,7 +69,6 @@ public class StateHandlerTestBase { void advanceToNextSnapshot() { currentTimeMillis.addAndGet(SNAPSHOT_INTERVAL); - monitor.updateSnapshot(); } } |