--- /dev/null
+/*\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
+/**\r
+ *\r
+ * Class to unit test the load balancing policies.\r
+ *\r
+ */\r
+public class LoadBalancerTest {\r
+ @Test\r
+ public void testRoundRobinPolicy() {\r
+ ConfigManager cm = null;\r
+ cm = new ConfigManager();\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
+}