Mass replace CRLF->LF
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / core / connection / ConnectionAdapterImplTest.java
index 77d9e912de57f32df9273365e1c9227f1b18f9e8..c9f52772c3dbb6534c51c5bc1c9e82b6e1cad1d6 100644 (file)
-/*\r
- * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-\r
-package org.opendaylight.openflowjava.protocol.impl.core.connection;\r
-\r
-import static org.mockito.Matchers.any;\r
-import static org.mockito.Mockito.times;\r
-import static org.mockito.Mockito.verify;\r
-import static org.mockito.Mockito.when;\r
-import io.netty.channel.ChannelFuture;\r
-import io.netty.channel.ChannelPipeline;\r
-import io.netty.channel.socket.SocketChannel;\r
-\r
-import java.net.InetSocketAddress;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.mockito.Mock;\r
-import org.mockito.MockitoAnnotations;\r
-import org.opendaylight.openflowjava.protocol.api.connection.ConnectionReadyListener;\r
-import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
-import org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl;\r
-import org.opendaylight.openflowjava.protocol.impl.core.connection.ResponseExpectedRpcListener;\r
-import org.opendaylight.openflowjava.protocol.impl.core.connection.RpcResponseKey;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInputBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutputBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEvent;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEventBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEvent;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEventBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SystemNotificationsListener;\r
-import org.opendaylight.yangtools.yang.binding.DataObject;\r
-\r
-import com.google.common.cache.Cache;\r
-import com.google.common.cache.CacheBuilder;\r
-import com.google.common.cache.RemovalListener;\r
-import com.google.common.cache.RemovalNotification;\r
-\r
-/**\r
- * @author michal.polkorab\r
- * @author madamjak\r
- *\r
- */\r
-public class ConnectionAdapterImplTest {\r
-\r
-    private static final int RPC_RESPONSE_EXPIRATION = 1;\r
-    private static final RemovalListener<RpcResponseKey, ResponseExpectedRpcListener<?>> REMOVAL_LISTENER =\r
-            new RemovalListener<RpcResponseKey, ResponseExpectedRpcListener<?>>() {\r
-        @Override\r
-        public void onRemoval(\r
-                final RemovalNotification<RpcResponseKey, ResponseExpectedRpcListener<?>> notification) {\r
-            notification.getValue().discard();\r
-        }\r
-    };\r
-\r
-    @Mock SocketChannel channel;\r
-    @Mock ChannelPipeline pipeline;\r
-    @Mock OpenflowProtocolListener messageListener;\r
-    @Mock SystemNotificationsListener systemListener;\r
-    @Mock ConnectionReadyListener readyListener;\r
-    @Mock Cache<RpcResponseKey, ResponseExpectedRpcListener<?>> mockCache;\r
-    @Mock ChannelFuture channelFuture;\r
+/*
+ * Copyright (c) 2014 Pantheon Technologies s.r.o. 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
+ */
 
-    private ConnectionAdapterImpl adapter;\r
-    private Cache<RpcResponseKey, ResponseExpectedRpcListener<?>> cache;\r
-\r
-    /**\r
-     * Initializes ConnectionAdapter\r
-     */\r
-    @Before\r
-    public void setUp() {\r
-        MockitoAnnotations.initMocks(this);\r
-        when(channel.pipeline()).thenReturn(pipeline);\r
-        adapter = new ConnectionAdapterImpl(channel, InetSocketAddress.createUnresolved("10.0.0.1", 6653));\r
-        adapter.setMessageListener(messageListener);\r
-        adapter.setSystemListener(systemListener);\r
-        adapter.setConnectionReadyListener(readyListener);\r
-        cache = CacheBuilder.newBuilder().concurrencyLevel(1).expireAfterWrite(RPC_RESPONSE_EXPIRATION, TimeUnit.MINUTES)\r
-                .removalListener(REMOVAL_LISTENER).build();\r
+package org.opendaylight.openflowjava.protocol.impl.core.connection;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelPipeline;
+import io.netty.channel.socket.SocketChannel;
+
+import java.net.InetSocketAddress;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.opendaylight.openflowjava.protocol.api.connection.ConnectionReadyListener;
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
+import org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl;
+import org.opendaylight.openflowjava.protocol.impl.core.connection.ResponseExpectedRpcListener;
+import org.opendaylight.openflowjava.protocol.impl.core.connection.RpcResponseKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEvent;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEventBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEvent;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEventBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SystemNotificationsListener;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.RemovalListener;
+import com.google.common.cache.RemovalNotification;
+
+/**
+ * @author michal.polkorab
+ * @author madamjak
+ *
+ */
+public class ConnectionAdapterImplTest {
+
+    private static final int RPC_RESPONSE_EXPIRATION = 1;
+    private static final RemovalListener<RpcResponseKey, ResponseExpectedRpcListener<?>> REMOVAL_LISTENER =
+            new RemovalListener<RpcResponseKey, ResponseExpectedRpcListener<?>>() {
+        @Override
+        public void onRemoval(
+                final RemovalNotification<RpcResponseKey, ResponseExpectedRpcListener<?>> notification) {
+            notification.getValue().discard();
+        }
+    };
+
+    @Mock SocketChannel channel;
+    @Mock ChannelPipeline pipeline;
+    @Mock OpenflowProtocolListener messageListener;
+    @Mock SystemNotificationsListener systemListener;
+    @Mock ConnectionReadyListener readyListener;
+    @Mock Cache<RpcResponseKey, ResponseExpectedRpcListener<?>> mockCache;
+    @Mock ChannelFuture channelFuture;
+
+    private ConnectionAdapterImpl adapter;
+    private Cache<RpcResponseKey, ResponseExpectedRpcListener<?>> cache;
+
+    /**
+     * Initializes ConnectionAdapter
+     */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(channel.pipeline()).thenReturn(pipeline);
+        adapter = new ConnectionAdapterImpl(channel, InetSocketAddress.createUnresolved("10.0.0.1", 6653));
+        adapter.setMessageListener(messageListener);
+        adapter.setSystemListener(systemListener);
+        adapter.setConnectionReadyListener(readyListener);
+        cache = CacheBuilder.newBuilder().concurrencyLevel(1).expireAfterWrite(RPC_RESPONSE_EXPIRATION, TimeUnit.MINUTES)
+                .removalListener(REMOVAL_LISTENER).build();
         adapter.setResponseCache(cache);
         when(channel.disconnect()).thenReturn(channelFuture);
-    }\r
-\r
-    /**\r
-     * Tests {@link ConnectionAdapterImpl#consume(DataObject)} with notifications\r
-     */\r
-    @Test\r
-    public void testConsume() {\r
-        DataObject message = new EchoRequestMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onEchoRequestMessage((EchoRequestMessage) message);\r
-        message = new ErrorMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onErrorMessage((ErrorMessage) message);\r
-        message = new ExperimenterMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onExperimenterMessage((ExperimenterMessage) message);\r
-        message = new FlowRemovedMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onFlowRemovedMessage((FlowRemovedMessage) message);\r
-        message = new HelloMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onHelloMessage((HelloMessage) message);\r
-        message = new MultipartReplyMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onMultipartReplyMessage((MultipartReplyMessage) message);\r
-        message = new PacketInMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onPacketInMessage((PacketInMessage) message);\r
-        message = new PortStatusMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onPortStatusMessage((PortStatusMessage) message);\r
-        message = new SwitchIdleEventBuilder().build();\r
-        adapter.consume(message);\r
-        verify(systemListener, times(1)).onSwitchIdleEvent((SwitchIdleEvent) message);\r
-        message = new DisconnectEventBuilder().build();\r
-        adapter.consume(message);\r
-        verify(systemListener, times(1)).onDisconnectEvent((DisconnectEvent) message);\r
-        message = new EchoRequestMessageBuilder().build();\r
-        adapter.consume(message);\r
-        verify(messageListener, times(1)).onEchoRequestMessage((EchoRequestMessage) message);\r
-    }\r
-\r
-    /**\r
-     * Tests {@link ConnectionAdapterImpl#consume(DataObject)} with unexpected rpc\r
-     */\r
-    @Test\r
-    public void testConsume2() {\r
-        adapter.setResponseCache(mockCache);\r
-        BarrierOutputBuilder barrierBuilder = new BarrierOutputBuilder();\r
-        barrierBuilder.setXid(42L);\r
-        BarrierOutput barrier = barrierBuilder.build();\r
-        adapter.consume(barrier);\r
-        verify(mockCache, times(1)).getIfPresent(any(RpcResponseKey.class));\r
-    }\r
-\r
-    /**\r
-     * Tests {@link ConnectionAdapterImpl#consume(DataObject)} with expected rpc\r
-     */\r
-    @Test\r
-    public void testConsume3() {\r
-        BarrierInputBuilder inputBuilder = new BarrierInputBuilder();\r
-        inputBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);\r
-        inputBuilder.setXid(42L);\r
-        BarrierInput barrierInput = inputBuilder.build();\r
-        RpcResponseKey key = new RpcResponseKey(42L, "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput");\r
-        ResponseExpectedRpcListener<OfHeader> listener = new ResponseExpectedRpcListener<>(barrierInput,\r
-                "failure", mockCache, key);\r
-        cache.put(key, listener);\r
-        BarrierOutputBuilder barrierBuilder = new BarrierOutputBuilder();\r
-        barrierBuilder.setXid(42L);\r
-        BarrierOutput barrierOutput = barrierBuilder.build();\r
-        adapter.consume(barrierOutput);\r
-        ResponseExpectedRpcListener<?> ifPresent = cache.getIfPresent(key);\r
-        Assert.assertNull("Listener was not discarded", ifPresent);\r
+    }
+
+    /**
+     * Tests {@link ConnectionAdapterImpl#consume(DataObject)} with notifications
+     */
+    @Test
+    public void testConsume() {
+        DataObject message = new EchoRequestMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onEchoRequestMessage((EchoRequestMessage) message);
+        message = new ErrorMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onErrorMessage((ErrorMessage) message);
+        message = new ExperimenterMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onExperimenterMessage((ExperimenterMessage) message);
+        message = new FlowRemovedMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onFlowRemovedMessage((FlowRemovedMessage) message);
+        message = new HelloMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onHelloMessage((HelloMessage) message);
+        message = new MultipartReplyMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onMultipartReplyMessage((MultipartReplyMessage) message);
+        message = new PacketInMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onPacketInMessage((PacketInMessage) message);
+        message = new PortStatusMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onPortStatusMessage((PortStatusMessage) message);
+        message = new SwitchIdleEventBuilder().build();
+        adapter.consume(message);
+        verify(systemListener, times(1)).onSwitchIdleEvent((SwitchIdleEvent) message);
+        message = new DisconnectEventBuilder().build();
+        adapter.consume(message);
+        verify(systemListener, times(1)).onDisconnectEvent((DisconnectEvent) message);
+        message = new EchoRequestMessageBuilder().build();
+        adapter.consume(message);
+        verify(messageListener, times(1)).onEchoRequestMessage((EchoRequestMessage) message);
+    }
+
+    /**
+     * Tests {@link ConnectionAdapterImpl#consume(DataObject)} with unexpected rpc
+     */
+    @Test
+    public void testConsume2() {
+        adapter.setResponseCache(mockCache);
+        BarrierOutputBuilder barrierBuilder = new BarrierOutputBuilder();
+        barrierBuilder.setXid(42L);
+        BarrierOutput barrier = barrierBuilder.build();
+        adapter.consume(barrier);
+        verify(mockCache, times(1)).getIfPresent(any(RpcResponseKey.class));
+    }
+
+    /**
+     * Tests {@link ConnectionAdapterImpl#consume(DataObject)} with expected rpc
+     */
+    @Test
+    public void testConsume3() {
+        BarrierInputBuilder inputBuilder = new BarrierInputBuilder();
+        inputBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);
+        inputBuilder.setXid(42L);
+        BarrierInput barrierInput = inputBuilder.build();
+        RpcResponseKey key = new RpcResponseKey(42L, "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput");
+        ResponseExpectedRpcListener<OfHeader> listener = new ResponseExpectedRpcListener<>(barrierInput,
+                "failure", mockCache, key);
+        cache.put(key, listener);
+        BarrierOutputBuilder barrierBuilder = new BarrierOutputBuilder();
+        barrierBuilder.setXid(42L);
+        BarrierOutput barrierOutput = barrierBuilder.build();
+        adapter.consume(barrierOutput);
+        ResponseExpectedRpcListener<?> ifPresent = cache.getIfPresent(key);
+        Assert.assertNull("Listener was not discarded", ifPresent);
     }
     /**
      * Test IsAlive method