diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-07-06 15:46:19 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-07-06 15:46:19 +0200 |
commit | 4dd6e1bda2f24d94f48c36ce24f882589c9c226f (patch) | |
tree | 187246fde7a813f6bcb32c7cb8e384d0d5b31206 /configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java | |
parent | b4263f2dbb09613ffd0c08bd65126aae2a135c63 (diff) |
Refactor
Diffstat (limited to 'configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java')
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java new file mode 100644 index 00000000000..e5ffa4b5e45 --- /dev/null +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java @@ -0,0 +1,85 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.config.server.rpc; + +import com.yahoo.config.provision.ApplicationId; + +import com.yahoo.jrt.Request; +import com.yahoo.vespa.config.ConfigKey; +import com.yahoo.vespa.config.protocol.CompressionType; +import com.yahoo.vespa.config.protocol.DefContent; +import com.yahoo.vespa.config.protocol.JRTClientConfigRequestV3; +import com.yahoo.vespa.config.protocol.JRTServerConfigRequest; +import com.yahoo.vespa.config.protocol.JRTServerConfigRequestV3; +import com.yahoo.vespa.config.protocol.Trace; +import com.yahoo.vespa.config.server.GetConfigContext; +import com.yahoo.vespa.config.server.rpc.DelayedConfigResponses; +import com.yahoo.vespa.config.server.rpc.MockRpc; +import org.junit.Test; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + +/** + * @author lulf + * @since 5.1 + */ +public class DelayedConfigResponseTest { + + @Test + public void testDelayedConfigResponses() { + + MockRpc rpc = new MockRpc(13337); + DelayedConfigResponses responses = new DelayedConfigResponses(rpc, 1, false); + assertThat(responses.size(), is(0)); + JRTServerConfigRequest req = createRequest("foo", "md5", "myid", "mymd5", 3, 1000000, "bar"); + req.setDelayedResponse(true); + GetConfigContext context = GetConfigContext.testContext(ApplicationId.defaultId()); + responses.delayResponse(req, context); + assertThat(responses.size(), is(0)); + + req.setDelayedResponse(false); + responses.delayResponse(req, context); + responses.delayResponse(createRequest("foolio", "md5", "myid", "mymd5", 3, 100000, "bar"), context); + assertThat(responses.size(), is(2)); + assertTrue(req.isDelayedResponse()); + List<DelayedConfigResponses.DelayedConfigResponse> it = responses.allDelayedResponses(); + assertTrue(!it.isEmpty()); + } + + @Test + public void testDelayResponseRemove() { + GetConfigContext context = GetConfigContext.testContext(ApplicationId.defaultId()); + MockRpc rpc = new MockRpc(13337); + DelayedConfigResponses responses = new DelayedConfigResponses(rpc, 1, false); + responses.delayResponse(createRequest("foolio", "md5", "myid", "mymd5", 3, 100000, "bar"), context); + assertThat(responses.size(), is(1)); + responses.allDelayedResponses().get(0).cancel(); + assertThat(responses.size(), is(0)); + } + + @Test + public void testDelayedConfigResponse() { + MockRpc rpc = new MockRpc(13337); + DelayedConfigResponses responses = new DelayedConfigResponses(rpc, 1, false); + assertThat(responses.size(), is(0)); + assertThat(responses.toString(), is("DelayedConfigResponses. Average Size=0")); + JRTServerConfigRequest req = createRequest("foo", "md5", "myid", "mymd5", 3, 100, "bar"); + responses.delayResponse(req, GetConfigContext.testContext(ApplicationId.defaultId())); + rpc.waitUntilSet(5000); + assertThat(rpc.latestRequest, is(req)); + } + + public JRTServerConfigRequest createRequest(String configName, String defMd5, String configId, String md5, long generation, long timeout, String namespace) { + Request request = JRTClientConfigRequestV3. + createWithParams(new ConfigKey<>(configName, configId, namespace, defMd5, null), DefContent.fromList(Collections.emptyList()), + "fromHost", md5, generation, timeout, Trace.createDummy(), CompressionType.UNCOMPRESSED, + Optional.empty()).getRequest(); + return JRTServerConfigRequestV3.createFromRequest(request); + } + +} |