package mireka; import java.util.Arrays; import org.mockito.ArgumentMatcher; public class ArrayEndsWith extends ArgumentMatcher<byte[]> { private final byte[] expectedEnd; public ArrayEndsWith(byte[] expectedEnd) { super(); if (expectedEnd == null) throw new NullPointerException(); this.expectedEnd = expectedEnd; } @Override public boolean matches(Object argument) { byte[] argumentArray = (byte[]) argument; if (argument == null) return false; if (argumentArray.length < expectedEnd.length) return false; byte[] actualEnd = Arrays.copyOfRange(argumentArray, argumentArray.length - expectedEnd.length, argumentArray.length); return Arrays.equals(expectedEnd, actualEnd); } }