BAEL-5179: Introduction to HexFormat in Java 17 (#11387)

This commit is contained in:
thomasduxbury 2021-11-06 23:56:30 +00:00 committed by GitHub
parent 0356a2f6da
commit 683f3199bb
4 changed files with 100 additions and 0 deletions

View File

@ -0,0 +1,23 @@
package com.baeldung.hexformat;
import java.util.HexFormat;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
class ByteHexadecimalConversionUnitTest {
private HexFormat hexFormat = HexFormat.of();
@Test
void givenInitialisedHexFormat_whenHexStringIsPassed_thenByteArrayRepresentationIsReturned() {
byte[] hexBytes = hexFormat.parseHex("ABCDEF0123456789");
assertArrayEquals(new byte[] { -85, -51, -17, 1, 35, 69, 103, -119 }, hexBytes);
}
@Test
void givenInitialisedHexFormat_whenByteArrayIsPassed_thenHexStringRepresentationIsReturned() {
String bytesAsString = hexFormat.formatHex(new byte[] { -85, -51, -17, 1, 35, 69, 103, -119});
assertEquals("abcdef0123456789", bytesAsString);
}
}

View File

@ -0,0 +1,22 @@
package com.baeldung.hexformat;
import java.util.HexFormat;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class PrimitiveTypeHexadecimalConversionUnitTest {
private HexFormat hexFormat = HexFormat.of();
@Test
void givenInitialisedHexFormat_whenPrimitiveByteIsPassed_thenHexStringRepresentationIsReturned() {
String fromByte = hexFormat.toHexDigits((byte)64);
assertEquals("40", fromByte);
}
@Test
void givenInitialisedHexFormat_whenPrimitiveLongIsPassed_thenHexStringRepresentationIsReturned() {
String fromLong = hexFormat.toHexDigits(1234_5678_9012_3456L);
assertEquals("000462d53c8abac0", fromLong);
}
}

View File

@ -0,0 +1,15 @@
package com.baeldung.hexformat;
import java.util.HexFormat;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class StringFormattingUnitTest {
private HexFormat hexFormat = HexFormat.of().withPrefix("[").withSuffix("]").withDelimiter(", ");
@Test
public void givenInitialisedHexFormatWithFormattedStringOptions_whenByteArrayIsPassed_thenHexStringRepresentationFormattedCorrectlyIsReturned() {
assertEquals("[48], [0c], [11]", hexFormat.formatHex(new byte[] {72, 12, 17}));
}
}

View File

@ -0,0 +1,40 @@
package com.baeldung.hexformat;
import java.util.HexFormat;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class UppercaseLowercaseOutputUnitTest {
@Test
public void givenInitialisedHexFormat_whenByteArrayIsPassed_thenLowerCaseHexStringRepresentationIsReturned() {
HexFormat hexFormat = HexFormat.of();
String bytesAsString = hexFormat.formatHex(new byte[] { -85, -51, -17, 1, 35, 69, 103, -119});
assertTrue(isLowerCase(bytesAsString));
}
@Test
public void givenInitialisedHexFormatWithUpperCaseOption_whenByteArrayIsPassed_thenLowerCaseHexStringRepresentationIsReturned() {
HexFormat hexFormat = HexFormat.of().withUpperCase();
String bytesAsString = hexFormat.formatHex(new byte[] { -85, -51, -17, 1, 35, 69, 103, -119});
assertTrue(isUpperCase(bytesAsString));
}
private boolean isLowerCase(String str) {
char[] charArray = str.toCharArray();
for (int i=0; i < charArray.length; i++) {
if (Character.isUpperCase(charArray[i]))
return false;
}
return true;
}
private boolean isUpperCase(String str) {
char[] charArray = str.toCharArray();
for (int i=0; i < charArray.length; i++) {
if (Character.isLowerCase(charArray[i]))
return false;
}
return true;
}
}