public class ByteArrayComparatorTest
{
@Test
public void testByteArrayComparator()
{
ByteArrayComparator comparator = new ByteArrayComparator();
// Check equality
assertEquals( 0, comparator.compare( null, null ) );
assertEquals( 0, comparator.compare( new byte[]
{}, new byte[]
{} ) );
assertEquals( 0, comparator.compare( new byte[]
{ 0x01, 0x02 }, new byte[]
{ 0x01, 0x02 } ) );
// The first byte[] is > the second
assertEquals( 1, comparator.compare( new byte[]
{}, null ) );
assertEquals( 1, comparator.compare( new byte[]
{ 0x01 }, null ) );
assertEquals( 1, comparator.compare( new byte[]
{ 0x01, 0x02 }, new byte[]
{ 0x01, 0x01 } ) );
assertEquals( 1, comparator.compare( new byte[]
{ 0x01, 0x02, 0x01 }, new byte[]
{ 0x01, 0x02 } ) );
assertEquals( 1, comparator.compare( new byte[]
{ 0x01, 0x02 }, new byte[]
{ 0x01, 0x01, 0x02 } ) );
// The first byte[] is < the second
assertEquals( -1, comparator.compare( null, new byte[]
{} ) );
assertEquals( -1, comparator.compare( null, new byte[]
{ 0x01, 0x02 } ) );
assertEquals( -1, comparator.compare( null, new byte[]
{ ( byte ) 0xFF, 0x02 } ) );
assertEquals( -1, comparator.compare( new byte[]
{}, new byte[]
{ 0x01, 0x02 } ) );
assertEquals( -1, comparator.compare( new byte[]
{}, new byte[]
{ ( byte ) 0xFF, 0x02 } ) );
assertEquals( -1, comparator.compare( new byte[]
{ ( byte ) 0xFF, 0x01 }, new byte[]
{ 0x01, 0x01, 0x02 } ) );
byte[] array = new byte[3];
array[0] = 0x01;
array[1] = 0x02;
assertEquals( -1, comparator.compare( new byte[]
{ 0x01, 0x02 }, array ) );
}