2 * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
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
9 package org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart;
11 import static org.junit.Assert.assertEquals;
13 import io.netty.buffer.ByteBuf;
14 import io.netty.buffer.UnpooledByteBufAllocator;
15 import org.junit.Test;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body.MultipartReplyPortStats;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.node.connector.statistics.and.port.number.map.NodeConnectorStatisticsAndPortNumberMap;
20 public class MultipartReplyPortStatsDeserializerTest extends AbstractMultipartDeserializerTest {
21 private static final byte PADDING_IN_PORT_STATS_HEADER = 4;
22 private static final int PORT = 1;
23 private static final long PACKETS_RECEIVED = 2L;
24 private static final long PACKETS_TRANSMITTED = 3L;
25 private static final long BYTES_RECEIVED = 4L;
26 private static final long BYTES_TRANSMITTED = 5L;
27 private static final long RECEIVE_DROPS = 6L;
28 private static final long TRANSMIT_DROPS = 7L;
29 private static final long RECEIVE_ERRORS = 8L;
30 private static final long TRANSMIT_ERRORS = 9L;
31 private static final long RECEIVE_FRAME_ERROR = 10L;
32 private static final long RECEIVE_OVER_RUN_ERROR = 11L;
33 private static final long RECEIVE_CRC_ERROR = 12L;
34 private static final long COLLIESION_COUNT = 13L;
35 private static final int SECOND = 14;
36 private static final int NANOSECOND = 15;
39 public void deserialize() {
40 ByteBuf buffer = UnpooledByteBufAllocator.DEFAULT.buffer();
41 buffer.writeInt(PORT);
42 buffer.writeZero(PADDING_IN_PORT_STATS_HEADER);
43 buffer.writeLong(PACKETS_RECEIVED);
44 buffer.writeLong(PACKETS_TRANSMITTED);
45 buffer.writeLong(BYTES_RECEIVED);
46 buffer.writeLong(BYTES_TRANSMITTED);
47 buffer.writeLong(RECEIVE_DROPS);
48 buffer.writeLong(TRANSMIT_DROPS);
49 buffer.writeLong(RECEIVE_ERRORS);
50 buffer.writeLong(TRANSMIT_ERRORS);
51 buffer.writeLong(RECEIVE_FRAME_ERROR);
52 buffer.writeLong(RECEIVE_OVER_RUN_ERROR);
53 buffer.writeLong(RECEIVE_CRC_ERROR);
54 buffer.writeLong(COLLIESION_COUNT);
55 buffer.writeInt(SECOND);
56 buffer.writeInt(NANOSECOND);
58 final MultipartReplyPortStats reply = (MultipartReplyPortStats) deserializeMultipart(buffer);
60 final NodeConnectorStatisticsAndPortNumberMap portStats =
61 reply.getNodeConnectorStatisticsAndPortNumberMap().get(0);
62 assertEquals(PACKETS_RECEIVED, portStats.getPackets().getReceived().longValue());
63 assertEquals(PACKETS_TRANSMITTED, portStats.getPackets().getTransmitted().longValue());
64 assertEquals(BYTES_RECEIVED, portStats.getBytes().getReceived().longValue());
65 assertEquals(BYTES_TRANSMITTED, portStats.getBytes().getTransmitted().longValue());
66 assertEquals(RECEIVE_DROPS, portStats.getReceiveDrops().longValue());
67 assertEquals(TRANSMIT_DROPS, portStats.getTransmitDrops().longValue());
68 assertEquals(RECEIVE_ERRORS, portStats.getReceiveErrors().longValue());
69 assertEquals(TRANSMIT_ERRORS, portStats.getTransmitErrors().longValue());
70 assertEquals(RECEIVE_FRAME_ERROR, portStats.getReceiveFrameError().longValue());
71 assertEquals(RECEIVE_OVER_RUN_ERROR, portStats.getReceiveOverRunError().longValue());
72 assertEquals(RECEIVE_CRC_ERROR, portStats.getReceiveCrcError().longValue());
73 assertEquals(COLLIESION_COUNT, portStats.getCollisionCount().longValue());
74 assertEquals(SECOND, portStats.getDuration().getSecond().getValue().intValue());
75 assertEquals(NANOSECOND, portStats.getDuration().getNanosecond().getValue().intValue());
76 assertEquals(0, buffer.readableBytes());
80 protected int getType() {
81 return MultipartType.OFPMPPORTSTATS.getIntValue();