Add javadoc to JUtils

This commit is contained in:
Paul Schaub 2023-01-19 18:10:31 +01:00
parent 104b3a4ec4
commit 61c5eb2962
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311

View file

@ -12,10 +12,25 @@ import static org.junit.jupiter.api.Assertions.fail;
public class JUtils {
/**
* Return true, if the given <pre>array</pre> starts with <pre>start</pre>.
*
* @param array array
* @param start start
* @return true if array starts with start, false otherwise
*/
public static boolean arrayStartsWith(byte[] array, byte[] start) {
return arrayStartsWith(array, start, 0);
}
/**
* Return true, if the given <pre>array</pre> contains the given <pre>start</pre> at offset <pre>offset</pre>.
*
* @param array array
* @param start start
* @param offset offset
* @return true, if array contains start at offset, false otherwise
*/
public static boolean arrayStartsWith(byte[] array, byte[] start, int offset) {
if (offset < 0) {
throw new IllegalArgumentException("Offset cannot be negative");
@ -33,6 +48,12 @@ public class JUtils {
return true;
}
/**
* Assert that the given <pre>array</pre> starts with <pre>start</pre>.
*
* @param array array
* @param start start
*/
public static void assertArrayStartsWith(byte[] array, byte[] start) {
if (!arrayStartsWith(array, start)) {
byte[] actual = new byte[Math.min(start.length, array.length)];
@ -43,6 +64,13 @@ public class JUtils {
}
}
/**
* Assert that the given <pre>array</pre> contains <pre>start</pre> at <pre>offset</pre>.
*
* @param array array
* @param start start
* @param offset offset
*/
public static void assertArrayStartsWith(byte[] array, byte[] start, int offset) {
if (!arrayStartsWith(array, start, offset)) {
byte[] actual = new byte[Math.min(start.length, array.length - offset)];
@ -53,6 +81,12 @@ public class JUtils {
}
}
/**
* Assert equality of the given two ascii armored byte arrays, ignoring armor header lines.
*
* @param first first ascii armored bytes
* @param second second ascii armored bytes
*/
public static void assertAsciiArmorEquals(byte[] first, byte[] second) {
byte[] firstCleaned = removeArmorHeaders(first);
byte[] secondCleaned = removeArmorHeaders(second);
@ -60,6 +94,13 @@ public class JUtils {
assertArrayEquals(firstCleaned, secondCleaned);
}
/**
* Remove armor headers "Comment:", "Version:", "MessageID:", "Hash:" and "Charset:" along with their values
* from the given ascii armored byte array.
*
* @param armor ascii armored byte array
* @return ascii armored byte array with header lines removed
*/
public static byte[] removeArmorHeaders(byte[] armor) {
String string = new String(armor, StandardCharsets.UTF_8);
string = string.replaceAll("Comment: .+\\R", "")