2 * Copyright (c) 2019 Ericsson India Global Services Pvt Ltd. 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
8 package org.opendaylight.openflowjava.eric.codec.match;
10 import static org.junit.Assert.assertEquals;
12 import io.netty.buffer.ByteBuf;
13 import io.netty.buffer.ByteBufAllocator;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.openflowjava.eric.api.EricConstants;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EricExpClass;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.Icmpv6NdReserved;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.icmpv6.nd.reserved.grouping.Icmpv6NdReservedValuesBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.oxm.container.match.entry.value.Icmpv6NdReservedCaseValue;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.oxm.container.match.entry.value.Icmpv6NdReservedCaseValueBuilder;
25 public class Icmpv6NDReservedCodecTest {
27 private static final int ERIC_FIELD_CODE = 1;
28 private static final int VALUE_LENGTH = 4;
30 private Icmpv6NDReservedCodec icmpv6NDReservedCodec;
31 private ByteBuf buffer;
32 private MatchEntry input;
36 icmpv6NDReservedCodec = new Icmpv6NDReservedCodec();
37 buffer = ByteBufAllocator.DEFAULT.buffer();
41 public void serializeTest() {
42 input = createMatchEntry();
43 icmpv6NDReservedCodec.serialize(input, buffer);
45 assertEquals(EricConstants.ERICOXM_OF_EXPERIMENTER_ID,
46 buffer.readUnsignedShort());
47 short fieldMask = buffer.readUnsignedByte();
48 assertEquals(ERIC_FIELD_CODE, fieldMask >> 1);
49 assertEquals(0, fieldMask & 1);
50 assertEquals(VALUE_LENGTH, buffer.readUnsignedByte());
51 assertEquals(1, buffer.readUnsignedInt());
55 public void deserializeTest() {
57 input = icmpv6NDReservedCodec.deserialize(buffer);
58 final Icmpv6NdReservedCaseValue result = (Icmpv6NdReservedCaseValue) input.getMatchEntryValue();
60 assertEquals(EricExpClass.class, input.getOxmClass());
61 assertEquals(Icmpv6NdReserved.class, input.getOxmMatchField());
62 assertEquals(false, input.isHasMask());
63 assertEquals(2, result.getIcmpv6NdReservedValues().getIcmpv6NdReserved().intValue());
66 private static MatchEntry createMatchEntry() {
67 MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
68 final Icmpv6NdReservedCaseValueBuilder caseBuilder = new Icmpv6NdReservedCaseValueBuilder();
69 final Icmpv6NdReservedValuesBuilder valuesBuilder = new Icmpv6NdReservedValuesBuilder();
71 matchEntryBuilder.setOxmClass(EricExpClass.class);
72 matchEntryBuilder.setOxmMatchField(Icmpv6NdReserved.class);
73 matchEntryBuilder.setHasMask(false);
75 valuesBuilder.setIcmpv6NdReserved(1L);
76 caseBuilder.setIcmpv6NdReservedValues(valuesBuilder.build());
77 matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
78 return matchEntryBuilder.build();
81 private static void createBuffer(ByteBuf message) {
82 message.writeShort(EricConstants.ERICOXM_OF_EXPERIMENTER_ID);
83 int fieldMask = ERIC_FIELD_CODE << 1;
84 message.writeByte(fieldMask);
85 message.writeByte(VALUE_LENGTH);