2 * Copyright (c) 2013 Plexxi, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.affinity.internal;
11 import java.util.ArrayList;
12 import java.util.HashSet;
15 import org.junit.Assert;
16 import org.junit.Test;
17 import org.opendaylight.controller.sal.core.Bandwidth;
18 import org.opendaylight.controller.sal.core.Latency;
19 import org.opendaylight.controller.sal.core.Property;
20 import org.opendaylight.controller.sal.core.State;
21 import org.opendaylight.controller.sal.core.UpdateType;
22 import org.opendaylight.controller.sal.utils.Status;
23 import org.opendaylight.controller.affinity.AffinityGroup;
24 import org.opendaylight.controller.affinity.AffinityLink;
26 public class AffinityManagerImplTest {
29 public void testAffinityManagerAddRemoveConfig() {
30 AffinityManagerImpl affinitymgr = new AffinityManagerImpl();
31 affinitymgr.startUp();
33 AffinityGroup ag1 = new AffinityGroup("group1");
35 // Add a valid IP and confirm.
36 Status ret1 = ag1.add("10.0.0.10");
37 Assert.assertTrue(ret1.isSuccess());
39 Status ret2 = ag1.add("10.0.0.20");
40 Assert.assertTrue(ret2.isSuccess());
42 // Add an invalid element.
43 Status ret3 = ag1.add("10");
44 System.out.println(ret3);
45 Assert.assertTrue(!ret3.isSuccess());
47 // Second affinity group.
48 AffinityGroup ag2 = new AffinityGroup("group2");
52 // Add an affinity link from ag1 to ag2.
53 AffinityLink al1 = new AffinityLink();
54 al1.setFromGroup(ag1);
57 al1.setAttribute("isolate");
59 // Add a self loop for ag2.
60 AffinityLink al2 = new AffinityLink("link2", ag2, ag2);
61 al2.setFromGroup(ag2);
64 al2.setAttribute("hopcount");
66 System.out.println("Affinity group size is " + ag1.size());
67 Assert.assertTrue(ag1.size() == 2);
71 result = affinitymgr.addAffinityGroup(ag1);
72 Assert.assertTrue(result.isSuccess());
74 result = affinitymgr.addAffinityGroup(ag2);
75 Assert.assertTrue(result.isSuccess());
77 result = affinitymgr.addAffinityLink(al1);
78 Assert.assertTrue(result.isSuccess());
80 result = affinitymgr.addAffinityLink(al2);
81 Assert.assertTrue(result.isSuccess());
83 /* Constraint checking? */
84 result = (affinitymgr.removeAffinityGroup(ag1.getName()));
85 Assert.assertTrue(result.isSuccess());
87 affinitymgr.saveConfiguration();