+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
package org.opendaylight.controller.test.sal.binding.it;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider.ProviderFunctionality;
import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
public class NoficationTest extends AbstractTest {
- private FlowListener listener1 = new FlowListener();
- private FlowListener listener2 = new FlowListener();
+ private final FlowListener listener1 = new FlowListener();
+ private final FlowListener listener2 = new FlowListener();
private Registration<NotificationListener> listener1Reg;
private Registration<NotificationListener> listener2Reg;
@Test
public void notificationTest() throws Exception {
/**
- *
+ *
* The registration of the Provider 1.
- *
+ *
*/
AbstractTestProvider provider1 = new AbstractTestProvider() {
@Override
assertNotNull(notifyProviderService);
/**
- *
+ *
* The registration of the Consumer 1. It retrieves Notification Service
* from MD-SAL and registers SalFlowListener as notification listener
- *
+ *
*/
BindingAwareConsumer consumer1 = new BindingAwareConsumer() {
@Override
/**
* Check that one notification was delivered and has correct cookie.
- *
+ *
*/
assertEquals(1, listener1.addedFlows.size());
assertEquals(0, listener1.addedFlows.get(0).getCookie().intValue());
* registered as notification listener.
*/
BindingAwareProvider provider = new BindingAwareProvider() {
-
+
@Override
public void onSessionInitiated(ProviderContext session) {
listener2Reg = session.getSALService(NotificationProviderService.class).registerNotificationListener(
listener2);
}
-
+
@Override
public void onSessionInitialized(ConsumerContext session) {
// TODO Auto-generated method stub
-
+
}
-
+
@Override
public Collection<? extends RpcService> getImplementations() {
// TODO Auto-generated method stub
return null;
}
-
+
@Override
public Collection<? extends ProviderFunctionality> getFunctionality() {
// TODO Auto-generated method stub
return null;
}
-
+
};
// registerConsumer method calls onSessionInitialized method above
/**
* Check that 3 notification was delivered to both listeners (first one
* received 4 in total, second 3 in total).
- *
+ *
*/
assertEquals(4, listener1.addedFlows.size());
assertEquals(3, listener2.addedFlows.size());
/**
* The second listener is closed (unregistered)
- *
+ *
*/
listener2Reg.close();
/**
- *
+ *
* The notification 5 is published
*/
notifyProviderService.publish(flowAdded(10));
* Check that first consumer received 5 notifications in total, second
* consumer received only three. Last notification was never received by
* second consumer because its listener was unregistered.
- *
+ *
*/
assertEquals(5, listener1.addedFlows.size());
assertEquals(3, listener2.addedFlows.size());
/**
* Creates instance of the type FlowAdded. Only cookie value is set. It is
* used only for testing purpose.
- *
+ *
* @param i
* cookie value
* @return instance of the type FlowAdded
}
/**
- *
+ *
* Implements
* {@link org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowListener
* SalFlowListener} and contains attributes which keep lists of objects of
@Override
public void onFlowRemoved(FlowRemoved notification) {
removedFlows.add(notification);
- };
+ };
@Override
public void onFlowUpdated(FlowUpdated notification) {
@Override
public void onSwitchFlowRemoved(SwitchFlowRemoved notification) {
// TODO Auto-generated method stub
-
+
}
@Override
public void onNodeErrorNotification(NodeErrorNotification notification) {
// TODO Auto-generated method stub
-
+
}
@Override
public void onNodeExperimenterErrorNotification(
NodeExperimenterErrorNotification notification) {
// TODO Auto-generated method stub
-
+
}
}