package org.opendaylight.openflowplugin.impl.services;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import io.netty.util.HashedWheelTimer;
+import java.math.BigInteger;
+import java.util.List;
import org.junit.Before;
import org.junit.runner.RunWith;
+import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue;
import org.opendaylight.openflowplugin.api.OFConstants;
import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
-import org.opendaylight.openflowplugin.api.openflow.device.*;
+import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
+import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
+import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
+import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
+import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceInitializationPhaseHandler;
+import org.opendaylight.openflowplugin.api.openflow.device.handlers.MultiMsgCollector;
import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy;
import org.opendaylight.openflowplugin.impl.registry.flow.DeviceFlowRegistryImpl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReply;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import java.math.BigInteger;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
@RunWith(MockitoJUnitRunner.class)
public abstract class ServiceMocking {
private static final BigInteger DUMMY_DATAPATH_ID = new BigInteger("444");
private static final Long DUMMY_XID_VALUE = 2121L;
private static final Xid DUMMY_XID = new Xid(DUMMY_XID_VALUE);
- private static final String DUMMY_NODE_ID = "dummyNodeID";
+ protected static final String DUMMY_NODE_ID = "dummyNodeID";
private static final KeyedInstanceIdentifier<Node, NodeKey> NODE_II
= InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(new NodeId(DUMMY_NODE_ID)));
@Mock
- RequestContextStack mockedRequestContextStack;
+ protected RequestContextStack mockedRequestContextStack;
@Mock
- ConnectionContext mockedPrimConnectionContext;
+ protected ConnectionContext mockedPrimConnectionContext;
@Mock
- FeaturesReply mockedFeatures;
+ protected FeaturesReply mockedFeatures;
@Mock
- ConnectionAdapter mockedConnectionAdapter;
+ protected ConnectionAdapter mockedConnectionAdapter;
@Mock
- MessageSpy mockedMessagSpy;
+ protected MessageSpy mockedMessagSpy;
@Mock
- DeviceContext mockedDeviceContext;
+ protected DeviceContext mockedDeviceContext;
@Mock
- DeviceState mockedDeviceState;
+ protected DeviceState mockedDeviceState;
@Mock
- DeviceInitializationPhaseHandler mockedDevicePhaseHandler;
+ protected DeviceInitializationPhaseHandler mockedDevicePhaseHandler;
@Mock
- RequestContext mockedRequestContext;
+ protected RequestContext mockedRequestContext;
@Mock
- OutboundQueue mockedOutboundQueue;
+ protected OutboundQueue mockedOutboundQueue;
+ @Mock
+ protected MultiMsgCollector multiMessageCollector;
@Before
public void initialization() {
when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(NODE_II);
+
when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedPrimConnectionContext);
when(mockedDeviceContext.getMessageSpy()).thenReturn(mockedMessagSpy);
when(mockedDeviceContext.getDeviceFlowRegistry()).thenReturn(new DeviceFlowRegistryImpl());
when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState);
when(mockedDeviceContext.getTimer()).thenReturn(mock(HashedWheelTimer.class));
+ when(mockedDeviceContext.getMultiMsgCollector(Matchers.<RequestContext<List<MultipartReply>>>any())).thenReturn(multiMessageCollector);
+
+ setup();
+ }
+
+ protected void setup() {
+ //NOOP - to be overloaded
}