summaryrefslogtreecommitdiffstats
path: root/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusSessionKeyTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusSessionKeyTestCase.java')
-rw-r--r--container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusSessionKeyTestCase.java113
1 files changed, 113 insertions, 0 deletions
diff --git a/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusSessionKeyTestCase.java b/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusSessionKeyTestCase.java
new file mode 100644
index 00000000000..05336e0416b
--- /dev/null
+++ b/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusSessionKeyTestCase.java
@@ -0,0 +1,113 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.container.jdisc.messagebus;
+
+import com.yahoo.container.jdisc.messagebus.SessionCache.DynamicThrottlePolicySignature;
+import com.yahoo.container.jdisc.messagebus.SessionCache.SourceSessionKey;
+import com.yahoo.container.jdisc.messagebus.SessionCache.StaticThrottlePolicySignature;
+import com.yahoo.container.jdisc.messagebus.SessionCache.UnknownThrottlePolicySignature;
+import com.yahoo.messagebus.DynamicThrottlePolicy;
+import com.yahoo.messagebus.SourceSessionParams;
+import com.yahoo.messagebus.StaticThrottlePolicy;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Check the completeness of the mbus session key classes.
+ *
+ * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ */
+public class MbusSessionKeyTestCase {
+
+ @Test
+ public final void staticThrottlePolicySignature() {
+ final StaticThrottlePolicy base = new StaticThrottlePolicy();
+ final StaticThrottlePolicy other = new StaticThrottlePolicy();
+ other.setMaxPendingCount(500);
+ other.setMaxPendingSize(500 * 1000 * 1000);
+ base.setMaxPendingCount(1);
+ base.setMaxPendingSize(1000);
+ final StaticThrottlePolicySignature sigBase = new StaticThrottlePolicySignature(
+ base);
+ final StaticThrottlePolicySignature sigOther = new StaticThrottlePolicySignature(
+ other);
+ assertFalse("The policies are different, but signatures are equal.",
+ sigBase.equals(sigOther));
+ assertTrue("Sigs created from same policy evaluated as different.",
+ sigBase.equals(new StaticThrottlePolicySignature(base)));
+ other.setMaxPendingCount(1);
+ other.setMaxPendingSize(1000);
+ assertTrue(
+ "Sigs created from different policies with same settings evaluated as different.",
+ sigBase.equals(new StaticThrottlePolicySignature(other)));
+
+ }
+
+ @Test
+ public final void dynamicThrottlePolicySignature() {
+ final DynamicThrottlePolicy base = new DynamicThrottlePolicy();
+ final DynamicThrottlePolicy other = new DynamicThrottlePolicy();
+ base.setEfficiencyThreshold(5);
+ base.setMaxPendingCount(3);
+ base.setMaxPendingSize(3 * 100);
+ base.setMaxThroughput(1e6);
+ base.setMaxWindowSize(1e9);
+ base.setMinWindowSize(1e5);
+ base.setWeight(1.0);
+ base.setWindowSizeBackOff(.6);
+ base.setWindowSizeIncrement(500);
+ other.setEfficiencyThreshold(5 + 1);
+ other.setMaxPendingCount(3 + 1);
+ other.setMaxPendingSize(3 * 100 + 1);
+ other.setMaxThroughput(1e6 + 1);
+ other.setMaxWindowSize(1e9 + 1);
+ other.setMinWindowSize(1e5 + 1);
+ other.setWeight(1.0 + 1);
+ other.setWindowSizeBackOff(.6 + 1);
+ other.setWindowSizeIncrement(500 + 1);
+ final DynamicThrottlePolicySignature sigBase = new DynamicThrottlePolicySignature(
+ base);
+ final DynamicThrottlePolicySignature sigOther = new DynamicThrottlePolicySignature(
+ other);
+ assertFalse("The policies are different, but signatures are equal.",
+ sigBase.equals(sigOther));
+ assertTrue("Sigs created from same policy evaluated as different.",
+ sigBase.equals(new DynamicThrottlePolicySignature(base)));
+ other.setEfficiencyThreshold(5);
+ other.setMaxPendingCount(3);
+ other.setMaxPendingSize(3 * 100);
+ other.setMaxThroughput(1e6);
+ other.setMaxWindowSize(1e9);
+ other.setMinWindowSize(1e5);
+ other.setWeight(1.0);
+ other.setWindowSizeBackOff(.6);
+ other.setWindowSizeIncrement(500);
+ assertTrue(
+ "Sigs created from different policies with same settings evaluated as different.",
+ sigBase.equals(new DynamicThrottlePolicySignature(other)));
+ }
+
+ @Test
+ public final void unknownThrottlePolicySignature() {
+ final UnknownThrottlePolicySignature baseSig = new UnknownThrottlePolicySignature(
+ new StaticThrottlePolicy());
+ final UnknownThrottlePolicySignature otherSig = new UnknownThrottlePolicySignature(
+ new StaticThrottlePolicy());
+ assertEquals(baseSig, baseSig);
+ assertFalse(otherSig.equals(baseSig));
+ }
+
+ // TODO the session key tests are just smoke tests
+
+ @Test
+ public final void sourceSessionKey() {
+ final SourceSessionParams base = new SourceSessionParams();
+ final SourceSessionParams other = new SourceSessionParams();
+ assertEquals(new SourceSessionKey(base), new SourceSessionKey(other));
+ other.setTimeout(other.getTimeout() + 1);
+ assertFalse(new SourceSessionKey(base).equals(new SourceSessionKey(
+ other)));
+ }
+}