/** Test the hexadecimal string representation of the host data. */
 public void testToHexString() {
   assertTrue(null == HostData.toHexString(null));
   try {
     assertTrue(null == HostData.toHexString(new byte[0], 5, 10));
     fail("Length error not detected");
   } catch (IllegalArgumentException e) {
     assertEquals("Invalid start or length parameter", e.getMessage());
   }
   assertEquals("00", HostData.toHexString(new byte[] {0x00}));
   assertEquals("0001", HostData.toHexString(new byte[] {0x00, 0x01}));
   assertEquals("0001ff", HostData.toHexString(new byte[] {0x00, 0x01, -0x01}));
   assertEquals("", HostData.toHexString(new byte[] {0x00, 0x01}, 0, 0));
   assertEquals("00", HostData.toHexString(new byte[] {0x00, 0x01}, 0, 1));
   assertEquals("01", HostData.toHexString(new byte[] {0x00, 0x01}, 1, 1));
 }
 /** Test the hexadecimal string representation of the host data with maximum. */
 public void testToHexStringWithMax() {
   assertTrue(null == HostData.toHexString(null, 100));
   try {
     assertTrue(null == HostData.toHexString(new byte[0], 5, 10, 100));
     fail("Length error not detected");
   } catch (IllegalArgumentException e) {
     assertEquals("Invalid start or length parameter", e.getMessage());
   }
   try {
     assertEquals("0001", HostData.toHexString(new byte[] {0x00, 0x01}, 1));
     fail("Length error not detected");
   } catch (IllegalArgumentException e) {
     assertEquals("maxBytes cannot be smaller than 2", e.getMessage());
   }
   assertEquals("0001", HostData.toHexString(new byte[] {0x00, 0x01}, 2));
   assertEquals("0001", HostData.toHexString(new byte[] {0x00, 0x01}, 3));
   assertEquals("00....02", HostData.toHexString(new byte[] {0x00, 0x01, 0x02}, 2));
   assertEquals("00....03", HostData.toHexString(new byte[] {0x00, 0x01, 0x02, 0x03}, 2));
   assertEquals("00....03", HostData.toHexString(new byte[] {0x00, 0x01, 0x02, 0x03}, 3));
   assertEquals("00010203", HostData.toHexString(new byte[] {0x00, 0x01, 0x02, 0x03}, 4));
   assertEquals(
       "00....04", HostData.toHexString(new byte[] {0x00, 0x01, 0x02, 0x03, 0x04}, 0, 5, 2));
   assertEquals(
       "00....03", HostData.toHexString(new byte[] {0x00, 0x01, 0x02, 0x03, 0x04}, 0, 4, 2));
   assertEquals(
       "01....04", HostData.toHexString(new byte[] {0x00, 0x01, 0x02, 0x03, 0x04}, 1, 4, 2));
   assertEquals(
       "01020304", HostData.toHexString(new byte[] {0x00, 0x01, 0x02, 0x03, 0x04}, 1, 4, 4));
 }