e325e00b593b550fb91ae55547463747e9f0442b
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / protocol / deserialization / multipart / MultipartReplyPortStatsDeserializerTest.java
1 /*
2  * Copyright (c) 2017 Pantheon Technologies s.r.o. 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.protocol.deserialization.multipart;
10
11 import static org.junit.Assert.assertEquals;
12
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;
19
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;
37
38     @Test
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);
57
58         final MultipartReplyPortStats reply = (MultipartReplyPortStats) deserializeMultipart(buffer);
59
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());
77     }
78
79     @Override
80     protected int getType() {
81         return MultipartType.OFPMPPORTSTATS.getIntValue();
82     }
83 }