aboutsummaryrefslogtreecommitdiffstats
path: root/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-07-06 15:46:19 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-07-06 15:46:19 +0200
commit4dd6e1bda2f24d94f48c36ce24f882589c9c226f (patch)
tree187246fde7a813f6bcb32c7cb8e384d0d5b31206 /configserver/src/test/java/com/yahoo/vespa/config/server/rpc/DelayedConfigResponseTest.java
parentb4263f2dbb09613ffd0c08bd65126aae2a135c63 (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.java85
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);
+ }
+
+}