--- /dev/null
+/*\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;\r
+\r
+import static org.mockito.Mockito.times;\r
+import static org.mockito.Mockito.verify;\r
+import io.netty.channel.ChannelHandlerContext;\r
+import io.netty.util.concurrent.Future;\r
+import io.netty.util.concurrent.GenericFutureListener;\r
+\r
+import java.net.InetSocketAddress;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.junit.Assert;\r
+import org.junit.Test;\r
+import org.mockito.Mock;\r
+import org.mockito.MockitoAnnotations;\r
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
+import org.opendaylight.openflowjava.protocol.impl.connection.UdpMessageListenerWrapper;\r
+import org.opendaylight.openflowjava.protocol.impl.serialization.SerializationFactory;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder;\r
+\r
+/**\r
+ * @author michal.polkorab\r
+ *\r
+ */\r
+public class OFDatagramPacketEncoderTest {\r
+\r
+ @Mock ChannelHandlerContext ctx;\r
+ @Mock GenericFutureListener<Future<Void>> listener;\r
+ @Mock SerializationFactory factory;\r
+\r
+ private UdpMessageListenerWrapper wrapper;\r
+ private InetSocketAddress address = new InetSocketAddress("10.0.0.1", 6653);\r
+ private List<Object> out;\r
+\r
+ /**\r
+ * Initializes mocks and other objects\r
+ * @param version openflow protocol wire version\r
+ */\r
+ public void startUp(Short version) {\r
+ MockitoAnnotations.initMocks(this);\r
+ out = new ArrayList<>();\r
+ HelloInputBuilder builder = new HelloInputBuilder();\r
+ builder.setVersion(version);\r
+ HelloInput hello = builder.build();\r
+ wrapper = new UdpMessageListenerWrapper(hello, listener, address);\r
+ }\r
+\r
+ /**\r
+ * Tests encoding\r
+ */\r
+ @Test\r
+ public void testCorrectEncode() {\r
+ startUp((short) EncodeConstants.OF13_VERSION_ID);\r
+ OFDatagramPacketEncoder encoder = new OFDatagramPacketEncoder();\r
+ encoder.setSerializationFactory(factory);\r
+ try {\r
+ encoder.encode(ctx, wrapper, out);\r
+ } catch (Exception e) {\r
+ Assert.fail();\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Tests encoding\r
+ */\r
+ @Test\r
+ public void testIncorrectEncode() {\r
+ startUp(null);\r
+ OFDatagramPacketEncoder encoder = new OFDatagramPacketEncoder();\r
+ encoder.setSerializationFactory(factory);\r
+ try {\r
+ encoder.encode(ctx, wrapper, out);\r
+ } catch (Exception e) {\r
+ verify(wrapper, times(1)).getListener();\r
+ Assert.assertEquals("List should be empty", 0, out.size());\r
+ }\r
+ }\r
+}
\ No newline at end of file