/* See LICENSE for licensing and NOTICE for copyright. */ package org.cryptacular.codec; import java.nio.ByteBuffer; import java.nio.CharBuffer; import org.cryptacular.FailListener; import org.cryptacular.util.ByteUtil; import org.testng.annotations.DataProvider; import org.testng.annotations.Listeners; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; /** * Unit test for {@link HexEncoder} class. * * @author Middleware Services */ @Listeners(FailListener.class) public class HexEncoderTest { @DataProvider(name = "text-data") public Object[][] getTextData() { return new Object[][] { new Object[] { new HexEncoder(false), ByteUtil.toBytes("Able was I ere I saw elba"), "41626c652077617320492065726520492073617720656c6261", }, new Object[] { new HexEncoder(false), ByteUtil.toBytes("Able was I ere I saw elba\n"), "41626c652077617320492065726520492073617720656c62610a", }, new Object[] { new HexEncoder(true), ByteUtil.toBytes("Able was I ere I saw elba"), "41:62:6c:65:20:77:61:73:20:49:20:65:72:65:20:49:20:73:61:77:20:65:6c:62:61", }, new Object[] { new HexEncoder(), new byte[] { (byte) -100, (byte) 99, (byte) -80, (byte) 84, (byte) 119, (byte) -104, (byte) -74, (byte) 13, (byte) 94, (byte) 4, }, "9c63b0547798b60d5e04", }, }; } @Test(dataProvider = "text-data") public void testEncode(final HexEncoder encoder, final byte[] data, final String expected) throws Exception { final CharBuffer output = CharBuffer.allocate(encoder.outputSize(data.length)); encoder.encode(ByteBuffer.wrap(data), output); encoder.finalize(output); assertEquals(output.flip().toString(), expected); } }