package org.jgroups.tests; import org.jgroups.Address; import org.jgroups.Global; import org.jgroups.Message; import org.jgroups.protocols.pbcast.NakAckHeader2; import org.jgroups.util.ByteBufferInputStream; import org.jgroups.util.ByteBufferOutputStream; import org.jgroups.util.Util; import org.testng.annotations.Test; import java.nio.ByteBuffer; /** * Tests {@link ByteBufferOutputStream} * @author Bela Ban * @since 3.5 */ @Test(groups=Global.FUNCTIONAL) public class ByteBufferOutputStreamTest { public void testConstruction() throws Exception { Address dest=Util.createRandomAddress("A"); Message msg=new Message(dest, "hello world") .setFlag(Message.Flag.DONT_BUNDLE,Message.Flag.OOB).putHeader((short)22, NakAckHeader2.createMessageHeader(322649)); int size=(int)(msg.size()); ByteBuffer buf=ByteBuffer.allocate(size); ByteBufferOutputStream out=new ByteBufferOutputStream(buf); msg.writeTo(out); buf.flip(); byte[] array=new byte[buf.limit()]; System.arraycopy(buf.array(), buf.arrayOffset(), array, 0, buf.limit()); ByteBufferInputStream in=new ByteBufferInputStream(ByteBuffer.wrap(array)); Message copy=new Message(false); copy.readFrom(in); System.out.println("copy = " + copy); assert msg.getDest() != null && msg.getDest().equals(dest); } }