Simple Load Balancer Application - Recommitting the source codewith the whole source...
[controller.git] / opendaylight / samples / loadbalancer / src / test / java / org / opendaylight / controller / samples / loadbalancer / internal / LoadBalancerTest.java
diff --git a/opendaylight/samples/loadbalancer/src/test/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerTest.java b/opendaylight/samples/loadbalancer/src/test/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerTest.java
new file mode 100644 (file)
index 0000000..f8633b9
--- /dev/null
@@ -0,0 +1,69 @@
+/*\r
+ * Copyright IBM Corporation, 2013.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.samples.loadbalancer.internal;\r
+\r
+\r
+import org.junit.Assert;\r
+import org.junit.Test;\r
+import org.opendaylight.controller.samples.loadbalancer.ConfigManager;\r
+import org.opendaylight.controller.samples.loadbalancer.entities.Client;\r
+import org.opendaylight.controller.samples.loadbalancer.entities.Pool;\r
+import org.opendaylight.controller.samples.loadbalancer.entities.PoolMember;\r
+import org.opendaylight.controller.samples.loadbalancer.entities.VIP;\r
+import org.opendaylight.controller.samples.loadbalancer.policies.RoundRobinLBPolicy;\r
+\r
+import junit.framework.TestCase;\r
+\r
+/**\r
+ * \r
+ * Class to unit test the load balancing policies.\r
+ *\r
+ */\r
+public class LoadBalancerTest extends TestCase {\r
+    @Test\r
+    public void testRoundRobinPolicy() {\r
+        ConfigManager cm = null;\r
+        cm = new ConfigManager();\r
+        Assert.assertFalse(cm== null);\r
+        \r
+        Pool pool = cm.createPool("TestPool","roundrobin");\r
+        VIP vip = cm.createVIP("TestVIP","10.0.0.9","TCP",(short)5550,"TestPool");\r
+        PoolMember host1 = new PoolMember("host1","10.0.0.1","TestPool");\r
+        PoolMember host2 = new PoolMember("host2","10.0.0.2","TestPool");\r
+        PoolMember host3 = new PoolMember("host3","10.0.0.3","TestPool");\r
+        PoolMember host4 = new PoolMember("host4","10.0.0.4","TestPool");\r
+        PoolMember host5 = new PoolMember("host5","10.0.0.5","TestPool");\r
+        PoolMember host6 = new PoolMember("host6","10.0.0.6","TestPool");\r
+        PoolMember host7 = new PoolMember("host7","10.0.0.7","TestPool");\r
+        \r
+        pool.addMember(host1);\r
+        pool.addMember(host2);\r
+        pool.addMember(host3);\r
+        pool.addMember(host4);\r
+        pool.addMember(host5);\r
+        pool.addMember(host6);\r
+        pool.addMember(host7);\r
+        pool.addVIP(vip);\r
+        \r
+        Assert.assertTrue(cm.getAllPoolMembers("TestPool").size() == pool.getAllMembers().size());\r
+        \r
+        RoundRobinLBPolicy rrp = new RoundRobinLBPolicy(cm);\r
+        \r
+        Client c1 = new Client("10.0.0.1","TCP",(short)5000);\r
+        Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host1.getIp()));\r
+        \r
+        c1 = new Client("10.0.0.1","TCP",(short)5001);\r
+        Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host2.getIp()));\r
+        \r
+        c1 = new Client("10.0.0.1","TCP",(short)5002);\r
+        Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host3.getIp()));\r
+        \r
+        c1 = new Client("10.0.0.1","TCP",(short)5003);\r
+        Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host4.getIp()));\r
+    }\r
+}
\ No newline at end of file