Bharat saraswal
Committed by bharat saraswal-huawei

[ONOS-3111] Port pair group manager test case fixed

Change-Id: I790efe18ef4c536f09e3b315c65d866ee558049d
...@@ -30,6 +30,8 @@ import org.onlab.util.KryoNamespace; ...@@ -30,6 +30,8 @@ import org.onlab.util.KryoNamespace;
30 import org.onosproject.event.AbstractListenerManager; 30 import org.onosproject.event.AbstractListenerManager;
31 import org.onosproject.store.serializers.KryoNamespaces; 31 import org.onosproject.store.serializers.KryoNamespaces;
32 import org.onosproject.store.service.EventuallyConsistentMap; 32 import org.onosproject.store.service.EventuallyConsistentMap;
33 +import org.onosproject.store.service.EventuallyConsistentMapEvent;
34 +import org.onosproject.store.service.EventuallyConsistentMapListener;
33 import org.onosproject.store.service.MultiValuedTimestamp; 35 import org.onosproject.store.service.MultiValuedTimestamp;
34 import org.onosproject.store.service.StorageService; 36 import org.onosproject.store.service.StorageService;
35 import org.onosproject.store.service.WallClockTimestamp; 37 import org.onosproject.store.service.WallClockTimestamp;
...@@ -51,17 +53,21 @@ public class PortPairGroupManager extends AbstractListenerManager<PortPairGroupE ...@@ -51,17 +53,21 @@ public class PortPairGroupManager extends AbstractListenerManager<PortPairGroupE
51 private static final String PORT_PAIR_GROUP_ID_NULL = "PortPairGroup ID cannot be null"; 53 private static final String PORT_PAIR_GROUP_ID_NULL = "PortPairGroup ID cannot be null";
52 private static final String PORT_PAIR_GROUP_NULL = "PortPairGroup cannot be null"; 54 private static final String PORT_PAIR_GROUP_NULL = "PortPairGroup cannot be null";
53 private static final String LISTENER_NOT_NULL = "Listener cannot be null"; 55 private static final String LISTENER_NOT_NULL = "Listener cannot be null";
56 + private static final String EVENT_NOT_NULL = "event cannot be null";
54 57
55 private final Logger log = getLogger(getClass()); 58 private final Logger log = getLogger(getClass());
56 59
57 private EventuallyConsistentMap<PortPairGroupId, PortPairGroup> portPairGroupStore; 60 private EventuallyConsistentMap<PortPairGroupId, PortPairGroup> portPairGroupStore;
58 61
62 + private EventuallyConsistentMapListener<PortPairGroupId, PortPairGroup> portPairGroupListener =
63 + new InnerPortPairGroupStoreListener();
64 +
59 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 65 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
60 protected StorageService storageService; 66 protected StorageService storageService;
61 67
62 @Activate 68 @Activate
63 public void activate() { 69 public void activate() {
64 - 70 + eventDispatcher.addSink(PortPairGroupEvent.class, listenerRegistry);
65 KryoNamespace.Builder serializer = KryoNamespace.newBuilder() 71 KryoNamespace.Builder serializer = KryoNamespace.newBuilder()
66 .register(KryoNamespaces.API) 72 .register(KryoNamespaces.API)
67 .register(MultiValuedTimestamp.class) 73 .register(MultiValuedTimestamp.class)
...@@ -72,11 +78,14 @@ public class PortPairGroupManager extends AbstractListenerManager<PortPairGroupE ...@@ -72,11 +78,14 @@ public class PortPairGroupManager extends AbstractListenerManager<PortPairGroupE
72 .withName("portpairgroupstore").withSerializer(serializer) 78 .withName("portpairgroupstore").withSerializer(serializer)
73 .withTimestampProvider((k, v) -> new WallClockTimestamp()).build(); 79 .withTimestampProvider((k, v) -> new WallClockTimestamp()).build();
74 80
81 + portPairGroupStore.addListener(portPairGroupListener);
82 +
75 log.info("Started"); 83 log.info("Started");
76 } 84 }
77 85
78 @Deactivate 86 @Deactivate
79 public void deactivate() { 87 public void deactivate() {
88 + eventDispatcher.removeSink(PortPairGroupEvent.class);
80 portPairGroupStore.destroy(); 89 portPairGroupStore.destroy();
81 log.info("Stopped"); 90 log.info("Stopped");
82 } 91 }
...@@ -148,4 +157,36 @@ public class PortPairGroupManager extends AbstractListenerManager<PortPairGroupE ...@@ -148,4 +157,36 @@ public class PortPairGroupManager extends AbstractListenerManager<PortPairGroupE
148 } 157 }
149 return true; 158 return true;
150 } 159 }
160 +
161 +
162 + private class InnerPortPairGroupStoreListener
163 + implements
164 + EventuallyConsistentMapListener<PortPairGroupId, PortPairGroup> {
165 +
166 + @Override
167 + public void event(EventuallyConsistentMapEvent<PortPairGroupId, PortPairGroup> event) {
168 + checkNotNull(event, EVENT_NOT_NULL);
169 + PortPairGroup portPairGroup = event.value();
170 + if (EventuallyConsistentMapEvent.Type.PUT == event.type()) {
171 + notifyListeners(new PortPairGroupEvent(
172 + PortPairGroupEvent.Type.PORT_PAIR_GROUP_PUT,
173 + portPairGroup));
174 + }
175 + if (EventuallyConsistentMapEvent.Type.REMOVE == event.type()) {
176 + notifyListeners(new PortPairGroupEvent(
177 + PortPairGroupEvent.Type.PORT_PAIR_GROUP_DELETE,
178 + portPairGroup));
179 + }
180 + }
181 + }
182 +
183 + /**
184 + * Notifies specify event to all listeners.
185 + *
186 + * @param event PortPairGroup event
187 + */
188 + private void notifyListeners(PortPairGroupEvent event) {
189 + checkNotNull(event, EVENT_NOT_NULL);
190 + post(event);
191 + }
151 } 192 }
......
...@@ -29,6 +29,9 @@ import org.onosproject.vtnrsc.PortPairGroupId; ...@@ -29,6 +29,9 @@ import org.onosproject.vtnrsc.PortPairGroupId;
29 import org.onosproject.vtnrsc.TenantId; 29 import org.onosproject.vtnrsc.TenantId;
30 import org.onosproject.vtnrsc.DefaultPortPairGroup; 30 import org.onosproject.vtnrsc.DefaultPortPairGroup;
31 import org.onosproject.vtnrsc.util.VtnStorageServiceTest; 31 import org.onosproject.vtnrsc.util.VtnStorageServiceTest;
32 +import org.onosproject.common.event.impl.TestEventDispatcher;
33 +
34 +import static org.onosproject.net.NetTestTools.injectEventDispatcher;
32 35
33 /** 36 /**
34 * Unit tests for PortPairGroupManager class. 37 * Unit tests for PortPairGroupManager class.
...@@ -51,6 +54,7 @@ public class PortPairGroupManagerTest { ...@@ -51,6 +54,7 @@ public class PortPairGroupManagerTest {
51 public void testCreatePortPairGroup() { 54 public void testCreatePortPairGroup() {
52 // initialize port pair group manager 55 // initialize port pair group manager
53 portPairGroupMgr.storageService = storageService; 56 portPairGroupMgr.storageService = storageService;
57 + injectEventDispatcher(portPairGroupMgr, new TestEventDispatcher());
54 portPairGroupMgr.activate(); 58 portPairGroupMgr.activate();
55 59
56 // create port-pair-id list 60 // create port-pair-id list
......