2 * Copyright (c) 2019 PANTHEON.tech, s.r.o. 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715;
10 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
11 import static org.junit.jupiter.api.Assertions.assertEquals;
13 import java.util.UUID;
14 import org.eclipse.jdt.annotation.NonNull;
15 import org.junit.jupiter.api.Test;
17 class IetfYangUtilTest {
18 private static final byte @NonNull [] BYTES = new byte[] { 1, 2, 30, 90, -5, -120 };
19 private static final String CANON = "01:02:1e:5a:fb:88";
22 void testBytesToMac() {
23 final var mac = IetfYangUtil.macAddressFor(BYTES);
24 assertEquals(CANON, mac.getValue());
28 void testMacToBytes() {
29 assertArrayEquals(BYTES, IetfYangUtil.macAddressBytes(new MacAddress(CANON)));
30 assertArrayEquals(BYTES, IetfYangUtil.macAddressBytes(new MacAddress("01:02:1E:5a:Fb:88")));
34 void testBytesToHex() {
35 final var hex = IetfYangUtil.hexStringFor(BYTES);
36 assertEquals(CANON, hex.getValue());
40 void testHexToBytes() {
41 assertArrayEquals(BYTES, IetfYangUtil.hexStringBytes(new HexString(CANON)));
42 assertArrayEquals(BYTES, IetfYangUtil.hexStringBytes(new HexString("01:02:1E:5a:Fb:88")));
46 void testPhysToBytes() {
47 assertArrayEquals(BYTES, IetfYangUtil.physAddressBytes(new PhysAddress(CANON)));
48 assertArrayEquals(BYTES, IetfYangUtil.physAddressBytes(new PhysAddress("01:02:1E:5a:Fb:88")));
50 assertArrayEquals(new byte[0], IetfYangUtil.physAddressBytes(new PhysAddress("")));
51 assertArrayEquals(new byte[] { (byte) 0xaa }, IetfYangUtil.physAddressBytes(new PhysAddress("aa")));
52 assertArrayEquals(new byte[] { (byte) 0xaa, (byte) 0xbb },
53 IetfYangUtil.physAddressBytes(new PhysAddress("aa:bb")));
58 assertEquals(0x01020304, IetfYangUtil.dottedQuadBits(new DottedQuad("1.2.3.4")));
59 assertEquals(0xFFFFFFFF, IetfYangUtil.dottedQuadBits(new DottedQuad("255.255.255.255")));
63 void testQuadBytes() {
64 assertArrayEquals(new byte[] { 1, 2, 3, 4 }, IetfYangUtil.dottedQuadBytes(new DottedQuad("1.2.3.4")));
68 void testQuadForBits() {
69 assertEquals("1.2.3.4", IetfYangUtil.dottedQuadFor(0x01020304).getValue());
70 assertEquals("255.255.255.255", IetfYangUtil.dottedQuadFor(0xFFFFFFFF).getValue());
74 void testQuadForBytes() {
75 assertEquals("1.2.3.4", IetfYangUtil.dottedQuadFor(new byte[] { 1, 2, 3, 4 }).getValue());
80 final var uuid = UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6");
81 assertEquals("f81d4fae-7dec-11d0-a765-00a0c91e6bf6", IetfYangUtil.uuidFor(uuid).getValue());
85 void canonizeMACTest() {
86 assertEquals(CANON, IetfYangUtil.canonizeMacAddress(new MacAddress("01:02:1E:5A:FB:88")).getValue());
90 void testDottedQuad() {
91 assertArrayEquals(new byte[] { 1, 2, 3, 4 }, IetfYangUtil.dottedQuadBytes(new DottedQuad("1.2.3.4")));
92 assertEquals(new DottedQuad("1.2.3.4"), IetfYangUtil.dottedQuadFor(new byte[] { 1, 2, 3, 4 }));
96 void testHexString() {
97 assertArrayEquals(new byte[] { 0, 1 }, IetfYangUtil.hexStringBytes(new HexString("00:01")));
98 assertEquals(new HexString("00:01"), IetfYangUtil.hexStringFor(new byte[] { 0, 1 }));
102 void testPhysAddress() {
103 assertArrayEquals(new byte[] { 0, 1} , IetfYangUtil.physAddressBytes(new PhysAddress("00:01")));
104 assertEquals(new PhysAddress("00:01"), IetfYangUtil.physAddressFor(new byte[] { 0, 1 }));
108 void testMacAddress() {
109 assertArrayEquals(new byte[] { 0, 1, 2, 3, 4, 5 },
110 IetfYangUtil.macAddressBytes(new MacAddress("00:01:02:03:04:05")));
111 assertEquals(new MacAddress("00:01:02:03:04:05"), IetfYangUtil.macAddressFor(new byte[] { 0, 1, 2, 3, 4, 5 }));
116 final var java = UUID.randomUUID();
117 assertEquals(new Uuid(java.toString()), IetfYangUtil.uuidFor(java));