package de.jpaw.bonaparte.core.tests;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import org.testng.annotations.Test;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Output;
import de.jpaw.bonaparte.core.CompactByteArrayComposer;
import de.jpaw.bonaparte.core.CompactComposer;
import de.jpaw.bonaparte.pojos.meta.ClassDefinition;
import de.jpaw.util.ByteUtil;
public class CompactDumpTest {
@Test
public void testObj1StringBuilder() throws Exception {
ClassDefinition obj1 = ClassDefinition.class$MetaData();
System.out.println("Test starting: composer Kryo");
Kryo kryo = new Kryo();
byte [] buffer = new byte[4000];
Output output = new Output(buffer);
kryo.writeObject(output, obj1);
System.out.println("Length with Kryo is " + output.position());
output.close();
System.out.println("Test starting: composer Compact");
ByteArrayOutputStream baos = new ByteArrayOutputStream(4000);
DataOutputStream dataOut = new DataOutputStream(baos);
CompactComposer cc = new CompactComposer(dataOut, false);
cc.reset();
cc.writeRecord(obj1);
dataOut.flush();
System.out.println("Length with CompactComposer (PQON) is " + dataOut.size());
dataOut.close();
baos.close();
CompactByteArrayComposer cbac = new CompactByteArrayComposer(4000, true);
cbac.writeRecord(obj1);
System.out.println("Length with CompactByteArrayComposer (ID) is " + cbac.getBuilder().length());
System.out.println("Test starting: composer Compact");
baos = new ByteArrayOutputStream(4000);
dataOut = new DataOutputStream(baos);
cc = new CompactComposer(dataOut, true);
cc.reset();
cc.writeRecord(obj1);
dataOut.flush();
System.out.println("Length with CompactComposer (ID) is " + dataOut.size());
// dump the bytes
byte [] data = baos.toByteArray();
System.out.println(ByteUtil.dump(data, 9999));
}
}