package net.varkhan.base.conversion.character;
import junit.framework.TestCase;
import java.io.ByteArrayOutputStream;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
/**
* <b></b>.
* <p/>
*
* @author varkhan
* @date 11/23/13
* @time 4:23 PM
*/
public class AsciiEncoderTest extends TestCase {
public void testEncode() throws Exception {
verifyEncode("Foo bar baz", "Foo bar baz");
verifyEncode("Foo bar $$~", "Foo bar $$\u00fe");
}
public void verifyEncode(String expected, String encode) {
AsciiEncoder<Object> enc = new AsciiEncoder<Object>();
assertEquals("encode(\""+expected+"\")",expected,new String(enc.encode(encode,null), Charset.forName("US-ASCII")));
ByteArrayOutputStream out = new ByteArrayOutputStream();
assertEquals("encode(\""+expected+"\",OutputStream).length()",expected.length(), enc.encode(encode, out, null));
assertEquals("encode(\""+expected+"\",OutputStream)",expected,new String(out.toByteArray(),Charset.forName("US-ASCII")));
ByteBuffer buf = ByteBuffer.allocate(50);
assertEquals("encode(\""+expected+"\",ByteBuffer).length()",expected.length(), enc.encode(encode, buf, null));
assertEquals("encode(\""+expected+"\",ByteBuffer).array()",expected,new String(buf.array(),buf.arrayOffset(),buf.arrayOffset()+buf.position(),Charset.forName("US-ASCII")));
}
}