Java tutorial
/* * Copyright 2017-present Open Networking Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.onlab.packet; import com.google.common.testing.EqualsTester; import org.apache.commons.lang3.StringUtils; import org.junit.BeforeClass; import org.junit.Test; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; /** * Tests for class {@link VXLAN}. */ public class VXLANTest { private static final byte[] BYTE_PACKET_VXLAN = { (byte) 0x08, // flags (8 bits) (byte) 0x00, (byte) 0x00, (byte) 0x00, // rsvd1 (24 bits) (byte) 0x12, (byte) 0x34, (byte) 0x56, // vni (24 bits) (byte) 0x00, // rsvd2 (8 bits) }; private static Deserializer<VXLAN> deserializer; private static final UDP UDP_HDR = new UDP(); private static final int TEST_UDP_SRCPORT = 0x50; private static final int TEST_FLAGS = 0x08; private static final int TEST_VNI1 = 0x123456; private static final int TEST_VNI2 = 0x654321; @BeforeClass public static void setUpBeforeClass() throws Exception { deserializer = VXLAN.deserializer(); UDP_HDR.setSourcePort(TEST_UDP_SRCPORT); UDP_HDR.setDestinationPort(UDP.VXLAN_UDP_PORT); } /** * Tests serialize and setters. */ @Test public void testSerialize() { VXLAN vxlan = new VXLAN(); vxlan.setFlag((byte) TEST_FLAGS); vxlan.setVni(TEST_VNI1); vxlan.setParent(UDP_HDR); assertArrayEquals("Serialized packet is not matched", BYTE_PACKET_VXLAN, vxlan.serialize()); } /** * Tests deserialize bad input. */ @Test public void testDeserializeBadInput() throws Exception { PacketTestUtils.testDeserializeBadInput(deserializer); } /** * Tests deserialize truncated. */ @Test public void testDeserializeTruncated() throws Exception { PacketTestUtils.testDeserializeTruncated(deserializer, BYTE_PACKET_VXLAN); } /** * Tests deserialize and getters. */ @Test public void testDeserialize() throws Exception { VXLAN vxlan = deserializer.deserialize(BYTE_PACKET_VXLAN, 0, BYTE_PACKET_VXLAN.length); assertThat(vxlan.getFlag(), is((byte) TEST_FLAGS)); assertThat(vxlan.getVni(), is(TEST_VNI1)); } /** * Tests comparator. */ @Test public void testEqual() { VXLAN vxlan1 = new VXLAN(); vxlan1.setFlag((byte) TEST_FLAGS); vxlan1.setVni(TEST_VNI1); VXLAN vxlan2 = new VXLAN(); vxlan2.setFlag((byte) TEST_FLAGS); vxlan2.setVni(TEST_VNI2); new EqualsTester().addEqualityGroup(vxlan1, vxlan1).addEqualityGroup(vxlan2).testEquals(); } /** * Tests toString. */ @Test public void testToStringVXLAN() throws Exception { VXLAN vxlan = deserializer.deserialize(BYTE_PACKET_VXLAN, 0, BYTE_PACKET_VXLAN.length); String str = vxlan.toString(); assertTrue(StringUtils.contains(str, "flags=" + TEST_FLAGS)); assertTrue(StringUtils.contains(str, "vni=" + TEST_VNI1)); } }