2 * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.sal.compatibility.test;
10 import org.junit.Assert;
11 import org.junit.Test;
12 import org.opendaylight.controller.sal.compatibility.NodeMapping;
13 import org.opendaylight.controller.sal.core.MacAddress;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
17 * test of {@link NodeMapping} utility class
19 public class NodeMappingTest {
23 * {@link org.opendaylight.controller.sal.compatibility.NodeMapping#toADMacAddress(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId)}
27 public void testToADMacAddress() {
28 NodeId[] nodeIds = new NodeId[] {
29 // 0x0000|0000 0000002a (answer to the ultimate question of life, universe and everything)
31 // 0x7fff|ffff ffffffff (max long -> 2**63 - 1)
32 new NodeId("9223372036854775807"),
33 // 0x7fff|7fff ffffffff
34 new NodeId("9223231299366420479"),
35 // 0x8fff|7fff ffffffff (more than biggest positive long)
36 new NodeId("10376152803973267455"),
37 // 0xca13|764a e9ace65a (BUG-770)
38 new NodeId("14561112084339025498")
41 byte[][] expectedMacs = new byte[][] {
42 {0, 0, 0, 0, 0, 0x2a},
43 {(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff},
44 {(byte) 0x7f, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff},
45 {(byte) 0x7f, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff},
46 {(byte) 0x76, (byte) 0x4a, (byte) 0xe9, (byte) 0xac, (byte) 0xe6, (byte) 0x5a}
49 Assert.assertEquals(expectedMacs.length, nodeIds.length);
51 for (int i = 0; i < expectedMacs.length; i++) {
52 NodeId nodeId = nodeIds[i];
53 MacAddress mac = NodeMapping.toADMacAddress(nodeId);
54 Assert.assertArrayEquals(expectedMacs[i], mac.getMacAddress());