/** * */ package anoncard; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * @author christoph * */ public class ArraysTest { /** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { } /** * @throws java.lang.Exception */ @After public void tearDown() throws Exception { } /** * Test method for {@link anoncard.Arrays#copyByteArray(byte[])}. */ @Test public void testCopyUserArray() { byte[] max = mixconfig.tools.dataretention.smartcard.Helpers.stringToUtf8Bytes("Max"); byte[] chris = mixconfig.tools.dataretention.smartcard.Helpers.stringToUtf8Bytes("Chris"); byte[] bast = mixconfig.tools.dataretention.smartcard.Helpers.stringToUtf8Bytes("Basti"); User[] array = new User[] { new User(max, new byte[] { 0, 1, 2, 3 }), new User(chris, new byte[] { 4, 5, 6, 7 }), new User(bast, new byte[] { 8, 9, 10, 11 }) }; User[] copy = Arrays.copyUserArray(array); assertTrue((userArrayEqual(array, copy))); copy[0].setPassword(new byte[] { 0, 1, 2, 3 }); array = new User[] { new User(max, new byte[] { 0, 1, 2, 3 }) }; copy = Arrays.copyUserArray(array); assertTrue((userArrayEqual(array, copy))); array = new User[] {}; copy = Arrays.copyUserArray(array); assertTrue((userArrayEqual(array, copy))); array = null; copy = Arrays.copyUserArray(array); assertTrue((userArrayEqual(array, copy))); } /** * Test method for {@link anoncard.Arrays#arrayEqual(byte[], byte[])}. */ @Test public void testArrayEqual() { byte[] array1 = new byte[] { 0, 1, 2, 3, 4 }; byte[] array2 = new byte[] { 0, 1, 2, 3, 5 }; byte[] array3 = new byte[] { 0 }; assertTrue(Arrays.arrayEqual(array1, array1)); assertTrue(Arrays.arrayEqual(array1, new byte[] { 0, 1, 2, 3, 4 })); assertTrue(Arrays.arrayEqual(null, null)); assertFalse(Arrays.arrayEqual(array1, array2)); assertFalse(Arrays.arrayEqual(array3, array2)); assertFalse(Arrays.arrayEqual(array1, null)); assertFalse(Arrays.arrayEqual(null, array2)); } /** * Test method for * {@link anoncard.Arrays#arrayEqualsArrayRange(byte[], byte[], short, short)} * . */ @Test public void testArrayEqualsArrayRange() { byte[] array = new byte[] { 1, 2 }; byte[] data = new byte[] { 0, 1, 2, 3, 5 }; assertTrue(Arrays.arrayEqualsArrayRange(array, array, (short) 0, (short) array.length)); assertTrue(Arrays.arrayEqualsArrayRange(array, data, (short) 1, (short) array.length)); assertFalse(Arrays.arrayEqualsArrayRange(array, data, (short) 0, (short) array.length)); assertFalse(Arrays.arrayEqualsArrayRange(array, data, (short) 1, (short) (array.length + 1))); assertFalse(Arrays.arrayEqualsArrayRange(array, data, (short) 4, (short) array.length)); assertFalse(Arrays.arrayEqualsArrayRange(array, data, (short) 8, (short) array.length)); assertFalse(Arrays.arrayEqualsArrayRange(array, null, (short) 0, (short) array.length)); assertFalse(Arrays.arrayEqualsArrayRange(null, array, (short) 0, (short) array.length)); } private boolean userArrayEqual(User[] array1, User[] array2) { if (array1 == array2) { return true; } if (array1 == null || array2 == null) { return false; } if (array1.length != array2.length) { return false; } for (short i = 0; i < array1.length; i++) { if (!array1[i].equals(array2[i])) { return false; } } return true; } /** * Test method for {@link anoncard.Arrays#copyOf(byte[])} and * {@link Arrays#copyOf(byte[], short, short)}. */ @Test public void testCopyOf() { assertArrayEquals(null, Arrays.copyOf(null)); assertArrayEquals(new byte[] {}, Arrays.copyOf(new byte[] {})); assertArrayEquals(new byte[] { 1 }, Arrays.copyOf(new byte[] { 1 })); assertArrayEquals(new byte[] { 1, 2 }, Arrays.copyOf(new byte[] { 1, 2 })); assertArrayEquals(null, Arrays.copyOf(null, (short) 0, (short) 0)); assertArrayEquals(new byte[] {}, Arrays.copyOf(new byte[] {}, (short) 0, (short) 1)); assertArrayEquals(new byte[] { 1 }, Arrays.copyOf(new byte[] { 1 }, (short) 0, (short) 1)); assertArrayEquals(new byte[] { 2 }, Arrays.copyOf(new byte[] { 1, 2 }, (short) 1, (short) 1)); assertArrayEquals(new byte[] { 2, 3, 4 }, Arrays.copyOf(new byte[] { 1, 2, 3, 4, 5, 6 }, (short) 1, (short) 3)); assertArrayEquals(new byte[] { 5, 6 }, Arrays.copyOf(new byte[] { 1, 2, 3, 4, 5, 6 }, (short) 4, (short) 2)); assertArrayEquals(new byte[] { 5, 6 }, Arrays.copyOf(new byte[] { 1, 2, 3, 4, 5, 6 }, (short) 4, (short) 5)); assertArrayEquals(new byte[] { 6 }, Arrays.copyOf(new byte[] { 1, 2, 3, 4, 5, 6 }, (short) 5, (short) 1)); } }