blob: 6b81135477670c3f59764b4927a20574d55a64e2 [file] [log] [blame]
package net.floodlightcontroller.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* @author Sho Shimizu (sho.shimizu@gmail.com)
*/
public class MACAddressTest {
@Test
public void testValueOf() {
MACAddress address = MACAddress.valueOf("00:01:02:03:04:05");
assertEquals(address,
MACAddress.valueOf(new byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}));
assertEquals("00:01:02:03:04:05", address.toString());
address = MACAddress.valueOf("FF:FE:FD:10:20:30");
assertEquals(address,
MACAddress.valueOf(new byte[]{(byte) 0xFF, (byte) 0xFE, (byte) 0xFD, 0x10, 0x20, 0x30}));
assertEquals("ff:fe:fd:10:20:30", address.toString());
address = MACAddress.valueOf("00:11:22:aa:bb:cc");
assertEquals(address,
MACAddress.valueOf(new byte[]{0x00, 0x11, 0x22, (byte) 0xaa, (byte) 0xbb, (byte) 0xcc}));
}
@Test(expected = NumberFormatException.class)
public void testIllegalFormat() {
MACAddress.valueOf("0T:00:01:02:03:04");
}
@Test(expected = IllegalArgumentException.class)
public void testLongStringFields() {
MACAddress.valueOf("00:01:02:03:04:05:06");
}
@Test(expected = IllegalArgumentException.class)
public void testShortStringFields() {
MACAddress.valueOf("00:01:02:03:04");
}
@Test(expected = IllegalArgumentException.class)
public void testLongByteFields() {
MACAddress.valueOf(new byte[]{0x01, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06});
}
@Test(expected = IllegalArgumentException.class)
public void testShortByteField() {
MACAddress.valueOf(new byte[]{0x01, 0x01, 0x02, 0x03, 0x04});
}
// Test data is imported from net.onrc.onos.core.packet.EthernetTest
@Test
public void testToLong() {
assertEquals(
281474976710655L,
MACAddress.valueOf(new byte[]{(byte) 0xff, (byte) 0xff,
(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff}).toLong());
assertEquals(
1103823438081L,
MACAddress.valueOf(new byte[]{(byte) 0x01, (byte) 0x01,
(byte) 0x01, (byte) 0x01, (byte) 0x01, (byte) 0x01}).toLong());
assertEquals(
141289400074368L,
MACAddress.valueOf(new byte[]{(byte) 0x80, (byte) 0x80,
(byte) 0x80, (byte) 0x80, (byte) 0x80, (byte) 0x80}).toLong());
}
@Test
public void testIsBroadcast() {
assertTrue(MACAddress.valueOf("FF:FF:FF:FF:FF:FF").isBroadcast());
assertFalse(MACAddress.valueOf("11:22:33:44:55:66").isBroadcast());
}
@Test
public void testIsMulticast() {
assertTrue(MACAddress.valueOf("01:80:C2:00:00:00").isMulticast());
assertFalse(MACAddress.valueOf("FF:FF:FF:FF:FF:FF").isMulticast());
assertFalse(MACAddress.valueOf("11:22:33:44:55:66").isBroadcast());
}
}