Merge "Add test for generated code checking list of dependencies."
[controller.git] / opendaylight / samples / loadbalancer / src / test / java / org / opendaylight / controller / samples / loadbalancer / internal / LoadBalancerTest.java
1 /*\r
2  * Copyright IBM Corporation, 2013.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.controller.samples.loadbalancer.internal;\r
9 \r
10 \r
11 import org.junit.Assert;\r
12 import org.junit.Test;\r
13 import org.opendaylight.controller.samples.loadbalancer.ConfigManager;\r
14 import org.opendaylight.controller.samples.loadbalancer.entities.Client;\r
15 import org.opendaylight.controller.samples.loadbalancer.entities.Pool;\r
16 import org.opendaylight.controller.samples.loadbalancer.entities.PoolMember;\r
17 import org.opendaylight.controller.samples.loadbalancer.entities.VIP;\r
18 import org.opendaylight.controller.samples.loadbalancer.policies.RoundRobinLBPolicy;\r
19 \r
20 import junit.framework.TestCase;\r
21 \r
22 /**\r
23  *\r
24  * Class to unit test the load balancing policies.\r
25  *\r
26  */\r
27 public class LoadBalancerTest extends TestCase {\r
28     @Test\r
29     public void testRoundRobinPolicy() {\r
30         ConfigManager cm = null;\r
31         cm = new ConfigManager();\r
32 \r
33         Pool pool = cm.createPool("TestPool","roundrobin");\r
34         VIP vip = cm.createVIP("TestVIP","10.0.0.9","TCP",(short)5550,"TestPool");\r
35         PoolMember host1 = new PoolMember("host1","10.0.0.1","TestPool");\r
36         PoolMember host2 = new PoolMember("host2","10.0.0.2","TestPool");\r
37         PoolMember host3 = new PoolMember("host3","10.0.0.3","TestPool");\r
38         PoolMember host4 = new PoolMember("host4","10.0.0.4","TestPool");\r
39         PoolMember host5 = new PoolMember("host5","10.0.0.5","TestPool");\r
40         PoolMember host6 = new PoolMember("host6","10.0.0.6","TestPool");\r
41         PoolMember host7 = new PoolMember("host7","10.0.0.7","TestPool");\r
42 \r
43         pool.addMember(host1);\r
44         pool.addMember(host2);\r
45         pool.addMember(host3);\r
46         pool.addMember(host4);\r
47         pool.addMember(host5);\r
48         pool.addMember(host6);\r
49         pool.addMember(host7);\r
50         pool.addVIP(vip);\r
51 \r
52         Assert.assertTrue(cm.getAllPoolMembers("TestPool").size() == pool.getAllMembers().size());\r
53 \r
54         RoundRobinLBPolicy rrp = new RoundRobinLBPolicy(cm);\r
55 \r
56         Client c1 = new Client("10.0.0.1","TCP",(short)5000);\r
57         Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host1.getIp()));\r
58 \r
59         c1 = new Client("10.0.0.1","TCP",(short)5001);\r
60         Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host2.getIp()));\r
61 \r
62         c1 = new Client("10.0.0.1","TCP",(short)5002);\r
63         Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host3.getIp()));\r
64 \r
65         c1 = new Client("10.0.0.1","TCP",(short)5003);\r
66         Assert.assertTrue(rrp.getPoolMemberForClient(c1, vip).equals(host4.getIp()));\r
67     }\r
68 }