2 * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 package org.opendaylight.openflowjava.protocol.impl.core;
\r
11 import static org.mockito.Mockito.times;
\r
12 import static org.mockito.Mockito.verify;
\r
13 import io.netty.channel.ChannelHandlerContext;
\r
14 import io.netty.util.concurrent.Future;
\r
15 import io.netty.util.concurrent.GenericFutureListener;
\r
17 import java.net.InetSocketAddress;
\r
18 import java.util.ArrayList;
\r
19 import java.util.List;
\r
21 import org.junit.Assert;
\r
22 import org.junit.Test;
\r
23 import org.mockito.Mock;
\r
24 import org.mockito.MockitoAnnotations;
\r
25 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
\r
26 import org.opendaylight.openflowjava.protocol.impl.core.connection.UdpMessageListenerWrapper;
\r
27 import org.opendaylight.openflowjava.protocol.impl.serialization.SerializationFactory;
\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;
\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder;
\r
32 * @author michal.polkorab
\r
35 public class OFDatagramPacketEncoderTest {
\r
37 @Mock ChannelHandlerContext ctx;
\r
38 @Mock GenericFutureListener<Future<Void>> listener;
\r
39 @Mock SerializationFactory factory;
\r
41 private UdpMessageListenerWrapper wrapper;
\r
42 private InetSocketAddress address = new InetSocketAddress("10.0.0.1", 6653);
\r
43 private List<Object> out;
\r
46 * Initializes mocks and other objects
\r
47 * @param version openflow protocol wire version
\r
49 public void startUp(Short version) {
\r
50 MockitoAnnotations.initMocks(this);
\r
51 out = new ArrayList<>();
\r
52 HelloInputBuilder builder = new HelloInputBuilder();
\r
53 builder.setVersion(version);
\r
54 HelloInput hello = builder.build();
\r
55 wrapper = new UdpMessageListenerWrapper(hello, listener, address);
\r
62 public void testCorrectEncode() {
\r
63 startUp((short) EncodeConstants.OF13_VERSION_ID);
\r
64 OFDatagramPacketEncoder encoder = new OFDatagramPacketEncoder();
\r
65 encoder.setSerializationFactory(factory);
\r
67 encoder.encode(ctx, wrapper, out);
\r
68 } catch (Exception e) {
\r
77 public void testIncorrectEncode() {
\r
79 OFDatagramPacketEncoder encoder = new OFDatagramPacketEncoder();
\r
80 encoder.setSerializationFactory(factory);
\r
82 encoder.encode(ctx, wrapper, out);
\r
83 } catch (Exception e) {
\r
84 verify(wrapper, times(1)).getListener();
\r
85 Assert.assertEquals("List should be empty", 0, out.size());
\r