package nodomain.freeyourgadget.gadgetbridge.test;
|
|
import org.junit.Test;
|
|
import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils;
|
|
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.fail;
|
|
/**
|
* Tests ArrayUtils
|
*/
|
public class ArrayUtilsTest extends TestBase {
|
|
private static final byte[] EMPTY = new byte[0];
|
private static final byte[] DATA_5 = new byte[] { 1, 2, 3, 4, 5};
|
|
public ArrayUtilsTest() throws Exception {
|
}
|
|
@Test
|
public void testEqualsException1() throws Exception {
|
try {
|
ArrayUtils.equals(null, EMPTY, 0);
|
fail("equals should throw on bad argument");
|
} catch (IllegalArgumentException ex) {
|
// expected
|
}
|
}
|
|
@Test
|
public void testEqualsException2() throws Exception {
|
try {
|
ArrayUtils.equals(EMPTY, null, 0);
|
fail("equals should throw on bad argument");
|
} catch (IllegalArgumentException ex) {
|
// expected
|
}
|
}
|
|
@Test
|
public void testEqualsException5() throws Exception {
|
try {
|
ArrayUtils.equals(EMPTY, EMPTY, -1);
|
fail("equals should throw on bad argument");
|
} catch (IllegalArgumentException ex) {
|
// expected
|
}
|
}
|
|
@Test
|
public void testEqualsEmptyData() throws Exception {
|
assertFalse(ArrayUtils.equals(EMPTY, DATA_5, 0));
|
}
|
|
@Test
|
public void testEqualsEmptyTest() throws Exception {
|
// testing for 0 equal bytes may be senseless, but always true
|
assertTrue(ArrayUtils.equals(EMPTY, EMPTY, 0));
|
assertTrue(ArrayUtils.equals(DATA_5, EMPTY, 0));
|
}
|
|
@Test
|
public void testEquals1() throws Exception {
|
assertTrue(ArrayUtils.equals(DATA_5, b(1), 0));
|
}
|
|
@Test
|
public void testEquals2() throws Exception {
|
assertTrue(ArrayUtils.equals(DATA_5, b(2), 1));
|
}
|
|
@Test
|
public void testEquals5() throws Exception {
|
assertTrue(ArrayUtils.equals(DATA_5, b(5), 4));
|
}
|
|
@Test
|
public void testEqualsOutOfRange() throws Exception {
|
assertFalse(ArrayUtils.equals(DATA_5, b(5), 5));
|
}
|
|
@Test
|
public void testEquals123() throws Exception {
|
assertTrue(ArrayUtils.equals(DATA_5, new byte[] {1, 2, 3}, 0));
|
}
|
|
@Test
|
public void testEquals234() throws Exception {
|
assertTrue(ArrayUtils.equals(DATA_5, new byte[] {2, 3, 4}, 1));
|
}
|
|
@Test
|
public void testEquals345() throws Exception {
|
assertTrue(ArrayUtils.equals(DATA_5, new byte[] {3, 4, 5}, 2));
|
}
|
|
@Test
|
public void testEquals12345() throws Exception {
|
assertTrue(ArrayUtils.equals(DATA_5, DATA_5, 0));
|
}
|
|
@Test
|
public void testEqualsWrongStart() throws Exception {
|
assertFalse(ArrayUtils.equals(DATA_5, new byte[] {0, 2, 3}, 0));
|
}
|
|
@Test
|
public void testEqualsWrongEnd() throws Exception {
|
assertFalse(ArrayUtils.equals(DATA_5, new byte[] {3, 4, 6}, 2));
|
}
|
|
@Test
|
public void testStartsWith1() throws Exception {
|
assertTrue(ArrayUtils.startsWith(DATA_5, new byte[] {1}));
|
}
|
|
@Test
|
public void testStartsWith2() throws Exception {
|
assertTrue(ArrayUtils.startsWith(DATA_5, new byte[] {1, 2}));
|
}
|
|
@Test
|
public void testStartsWithAll() throws Exception {
|
assertTrue(ArrayUtils.startsWith(DATA_5, DATA_5.clone()));
|
}
|
|
@Test
|
public void testStartsWithEmpty() throws Exception {
|
assertTrue(ArrayUtils.startsWith(DATA_5, EMPTY));
|
}
|
|
@Test
|
public void testStartsWithFail1() throws Exception {
|
try {
|
ArrayUtils.startsWith(DATA_5, null);
|
fail("should have thrown an exception");
|
} catch (IllegalArgumentException ex) {
|
// expected
|
}
|
}
|
|
@Test
|
public void testStartsWithFail3() throws Exception {
|
assertFalse(ArrayUtils.startsWith(DATA_5, new byte[] {2, 3}));
|
}
|
|
@Test
|
public void testStartsWithFail4() throws Exception {
|
assertFalse(ArrayUtils.startsWith(DATA_5, new byte[] {1, 2, 3, 4, 5, 6}));
|
}
|
|
private byte[] b(int b) {
|
return new byte[] {(byte) b};
|
}
|
}
|