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
9 package org.opendaylight.openflowjava.eric.codec.match;
11 import static org.junit.Assert.assertEquals;
13 import io.netty.buffer.ByteBuf;
14 import io.netty.buffer.ByteBufAllocator;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.opendaylight.openflowjava.eric.api.EricConstants;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EricExpClass;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.Icmpv6NdReserved;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.icmpv6.nd.reserved.grouping.Icmpv6NdReservedValuesBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.oxm.container.match.entry.value.Icmpv6NdReservedCaseValue;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.eric.match.rev180730.oxm.container.match.entry.value.Icmpv6NdReservedCaseValueBuilder;
26 public class Icmpv6NDReservedCodecTest {
28 private static final int ERIC_FIELD_CODE = 1;
29 private static final int VALUE_LENGTH = 4;
31 private Icmpv6NDReservedCodec icmpv6NDReservedCodec;
32 private ByteBuf buffer;
33 private MatchEntry input;
37 icmpv6NDReservedCodec = new Icmpv6NDReservedCodec();
38 buffer = ByteBufAllocator.DEFAULT.buffer();
42 public void serializeTest() {
43 input = createMatchEntry();
44 icmpv6NDReservedCodec.serialize(input, buffer);
46 assertEquals(EricConstants.ERICOXM_OF_EXPERIMENTER_ID,
47 buffer.readUnsignedShort());
48 short fieldMask = buffer.readUnsignedByte();
49 assertEquals(ERIC_FIELD_CODE, fieldMask >> 1);
50 assertEquals(0, fieldMask & 1);
51 assertEquals(VALUE_LENGTH, buffer.readUnsignedByte());
52 assertEquals(1, buffer.readUnsignedInt());
56 public void deserializeTest() {
58 input = icmpv6NDReservedCodec.deserialize(buffer);
59 final Icmpv6NdReservedCaseValue result = (Icmpv6NdReservedCaseValue) input.getMatchEntryValue();
61 assertEquals(EricExpClass.class, input.getOxmClass());
62 assertEquals(Icmpv6NdReserved.class, input.getOxmMatchField());
63 assertEquals(false, input.isHasMask());
64 assertEquals(2, result.getIcmpv6NdReservedValues().getIcmpv6NdReserved().intValue());
67 private MatchEntry createMatchEntry() {
68 MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
69 final Icmpv6NdReservedCaseValueBuilder caseBuilder = new Icmpv6NdReservedCaseValueBuilder();
70 final Icmpv6NdReservedValuesBuilder valuesBuilder = new Icmpv6NdReservedValuesBuilder();
72 matchEntryBuilder.setOxmClass(EricExpClass.class);
73 matchEntryBuilder.setOxmMatchField(Icmpv6NdReserved.class);
74 matchEntryBuilder.setHasMask(false);
76 valuesBuilder.setIcmpv6NdReserved(1L);
77 caseBuilder.setIcmpv6NdReservedValues(valuesBuilder.build());
78 matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
79 return matchEntryBuilder.build();
82 private void createBuffer(ByteBuf message) {
83 message.writeShort(EricConstants.ERICOXM_OF_EXPERIMENTER_ID);
84 int fieldMask = ERIC_FIELD_CODE << 1;
85 message.writeByte(fieldMask);
86 message.writeByte(VALUE_LENGTH);