summaryrefslogtreecommitdiff
path: root/java/test/com/zerotier/sdk/util/StringUtilsTest.java
blob: 257b14a99b4edf8a1d926fa1362c0fc53144dd50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 * ZeroTier One - Network Virtualization Everywhere
 * Copyright (C) 2011-2023  ZeroTier, Inc.  https://www.zerotier.com/
 */

package com.zerotier.sdk.util;

import static com.google.common.truth.Truth.assertThat;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

@RunWith(JUnit4.class)
public class StringUtilsTest {

    public StringUtilsTest() {
    }

    public String oldMacDisplay(long mac) {

        String macStr = Long.toHexString(mac);

        if (macStr.length() > 12) {
            throw new RuntimeException();
        }

        while (macStr.length() < 12) {
            //noinspection StringConcatenationInLoop
            macStr = "0" + macStr;
        }

        //noinspection StringBufferReplaceableByString
        StringBuilder displayMac = new StringBuilder();
        displayMac.append(macStr.charAt(0));
        displayMac.append(macStr.charAt(1));
        displayMac.append(':');
        displayMac.append(macStr.charAt(2));
        displayMac.append(macStr.charAt(3));
        displayMac.append(':');
        displayMac.append(macStr.charAt(4));
        displayMac.append(macStr.charAt(5));
        displayMac.append(':');
        displayMac.append(macStr.charAt(6));
        displayMac.append(macStr.charAt(7));
        displayMac.append(':');
        displayMac.append(macStr.charAt(8));
        displayMac.append(macStr.charAt(9));
        displayMac.append(':');
        displayMac.append(macStr.charAt(10));
        displayMac.append(macStr.charAt(11));

        return displayMac.toString();
    }

    @Test
    public void testMacDisplay() {

        long mac1 = 1234567891;
        assertThat(StringUtils.macAddressToString(mac1)).isEqualTo(oldMacDisplay(mac1));

        long mac2 = 999999999;
        assertThat(StringUtils.macAddressToString(mac2)).isEqualTo(oldMacDisplay(mac2));

        long mac3 = 0x7fffffffffffL;
        assertThat(StringUtils.macAddressToString(mac3)).isEqualTo(oldMacDisplay(mac3));
        assertThat(StringUtils.macAddressToString(mac3)).isEqualTo("7f:ff:ff:ff:ff:ff");

        long mac4 = 0x7fafcf3f8fffL;
        assertThat(StringUtils.macAddressToString(mac4)).isEqualTo(oldMacDisplay(mac4));
        assertThat(StringUtils.macAddressToString(mac4)).isEqualTo("7f:af:cf:3f:8f:ff");
    }
}