Migrate MockitoJUnitRunner
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / connection / ConnectionContextImplTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.openflowplugin.impl.connection;
10
11 import java.net.InetSocketAddress;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.junit.runner.RunWith;
16 import org.mockito.Mock;
17 import org.mockito.Mockito;
18 import org.mockito.junit.MockitoJUnitRunner;
19 import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
20 import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandlerRegistration;
21 import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
22 import org.opendaylight.openflowplugin.api.openflow.connection.DeviceConnectionStatusProvider;
23 import org.opendaylight.openflowplugin.api.openflow.connection.HandshakeContext;
24 import org.opendaylight.openflowplugin.api.openflow.connection.OutboundQueueProvider;
25 import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceDisconnectedHandler;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
27
28 /**
29  * Test for {@link ConnectionContextImpl}.
30  */
31 @RunWith(MockitoJUnitRunner.class)
32 public class ConnectionContextImplTest {
33
34     @Mock
35     private ConnectionAdapter connetionAdapter;
36     @Mock
37     private HandshakeContext handshakeContext;
38     @Mock
39     private OutboundQueueHandlerRegistration<OutboundQueueProvider> outboundQueueRegistration;
40     @Mock
41     private DeviceDisconnectedHandler deviceDisconnectedHandler;
42     @Mock
43     private OutboundQueueProvider outboundQueueProvider;
44     @Mock
45     private DeviceConnectionStatusProvider deviceConnectionStatusProvider;
46
47     private ConnectionContextImpl connectionContext;
48
49     @Before
50     public void setUp() {
51         Mockito.when(connetionAdapter.getRemoteAddress())
52                 .thenReturn(InetSocketAddress.createUnresolved("ofp-ut.example.org", 4242));
53         Mockito.when(connetionAdapter.isAlive()).thenReturn(true);
54
55         connectionContext = new ConnectionContextImpl(connetionAdapter, deviceConnectionStatusProvider);
56         connectionContext.setHandshakeContext(handshakeContext);
57         connectionContext.setNodeId(new NodeId("ut-node:123"));
58         connectionContext.setOutboundQueueHandleRegistration(outboundQueueRegistration);
59         connectionContext.setDeviceDisconnectedHandler(deviceDisconnectedHandler);
60
61         Assert.assertNull(connectionContext.getConnectionState());
62     }
63
64     @Test
65     public void testCloseConnection1() {
66         connectionContext.closeConnection(true);
67         Mockito.verify(outboundQueueRegistration).close();
68         Mockito.verify(handshakeContext).close();
69         Mockito.verify(connetionAdapter).disconnect();
70         Assert.assertEquals(ConnectionContext.CONNECTION_STATE.RIP, connectionContext.getConnectionState());
71
72         Mockito.verify(deviceDisconnectedHandler).onDeviceDisconnected(connectionContext);
73     }
74
75     @Test
76     public void testCloseConnection2() {
77         connectionContext.closeConnection(false);
78         Mockito.verify(outboundQueueRegistration).close();
79         Mockito.verify(handshakeContext).close();
80         Mockito.verify(connetionAdapter).disconnect();
81         Assert.assertEquals(ConnectionContext.CONNECTION_STATE.RIP, connectionContext.getConnectionState());
82
83         Mockito.verify(deviceDisconnectedHandler, Mockito.never()).onDeviceDisconnected(connectionContext);
84     }
85
86     @Test
87     public void testOnConnectionClosed() {
88         connectionContext.onConnectionClosed();
89         Assert.assertEquals(ConnectionContext.CONNECTION_STATE.RIP, connectionContext.getConnectionState());
90         Mockito.verify(outboundQueueRegistration).close();
91         Mockito.verify(handshakeContext).close();
92         Assert.assertEquals(ConnectionContext.CONNECTION_STATE.RIP, connectionContext.getConnectionState());
93         Mockito.verify(deviceDisconnectedHandler).onDeviceDisconnected(connectionContext);
94     }
95
96     @Test
97     public void testChangeStateToHandshaking() {
98         connectionContext.changeStateToHandshaking();
99         Assert.assertEquals(ConnectionContext.CONNECTION_STATE.HANDSHAKING, connectionContext.getConnectionState());
100     }
101
102     @Test
103     public void testChangeStateToTimeouting() {
104         connectionContext.changeStateToTimeouting();
105         Assert.assertEquals(ConnectionContext.CONNECTION_STATE.TIMEOUTING, connectionContext.getConnectionState());
106     }
107
108     @Test
109     public void testChangeStateToWorking() {
110         connectionContext.changeStateToWorking();
111         Assert.assertEquals(ConnectionContext.CONNECTION_STATE.WORKING, connectionContext.getConnectionState());
112     }
113 }