/* * 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"); } }