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:51 PM
*/
public class Base64EncoderTest extends TestCase {
public void testEncode() throws Exception {
Base64Encoder<Object> enc = new Base64Encoder<Object>();
assertEquals("F",new String(enc.encode("Rg==",null)));
assertEquals("Fo",new String(enc.encode("Rm8=",null)));
assertEquals("Foo Bar",new String(enc.encode("Rm9vIEJhcg==",null)));
assertEquals("Foo Bar ~",new String(enc.encode("Rm9vIEJhciB+",null)));
Base64Encoder<Object> encn = new Base64Encoder<Object>(Base64Decoder.CHARMAP_UTF7,Base64Decoder.NO_PADDING);
assertEquals("F",new String(encn.encode("Rg",null)));
assertEquals("Fo",new String(encn.encode("Rm8",null)));
assertEquals("Foo Bar",new String(encn.encode("Rm9vIEJhcg",null)));
assertEquals("Foo Bar ~",new String(encn.encode("Rm9vIEJhciB+",null)));
ByteArrayOutputStream out = new ByteArrayOutputStream();
assertEquals(7, encn.encode("Rm9vIEJhcg", out, null));
assertEquals("Foo Bar",new String(out.toByteArray(), Charset.forName("US-ASCII")));
ByteBuffer buf = ByteBuffer.allocate(50);
assertEquals(9, encn.encode("Rm9vIEJhciB+", buf, null));
assertEquals("Foo Bar ~",new String(buf.array(),buf.arrayOffset(),buf.arrayOffset()+buf.position(),Charset.forName("US-ASCII")));
}
}