private CoreMessage decodeMessage() { ByteBuf newBuffer = Unpooled.buffer(BYTE_ENCODE.capacity()); newBuffer.writeBytes(BYTE_ENCODE, 0, BYTE_ENCODE.writerIndex()); CoreMessage coreMessage = internalDecode(newBuffer); int encodeSize = coreMessage.getEncodeSize(); Assert.assertEquals(newBuffer.capacity(), encodeSize); Assert.assertEquals(ADDRESS, coreMessage.getAddressSimpleString()); Assert.assertEquals(PROP1_VALUE.toString(), coreMessage.getStringProperty(PROP1_NAME)); ByteBuf destinedBuffer = Unpooled.buffer(BYTE_ENCODE.array().length); coreMessage.sendBuffer(destinedBuffer, 0); byte[] destinedArray = destinedBuffer.array(); byte[] sourceArray = BYTE_ENCODE.array(); CoreMessage newDecoded = internalDecode(Unpooled.wrappedBuffer(destinedArray)); Assert.assertEquals(encodeSize, newDecoded.getEncodeSize()); Assert.assertArrayEquals(sourceArray, destinedArray); return coreMessage; }
coreMessage.sendBuffer(destinedBuffer, 0);
@Test public void testGenerateEmpty() { CoreMessage empty = new CoreMessage().initBuffer(100); ByteBuf buffer = Unpooled.buffer(200); empty.sendBuffer(buffer, 0); CoreMessage empty2 = new CoreMessage(); empty2.receiveBuffer(buffer); try { empty2.getBodyBuffer().readLong(); Assert.fail("should throw exception"); } catch (Exception expected) { } }
@Override public void run() { try { ActiveMQBuffer buffer = ActiveMQBuffers.dynamicBuffer(10 * 1024); aligned.countDown(); Assert.assertTrue(startFlag.await(5, TimeUnit.SECONDS)); coreMessage.messageChanged(); coreMessage.sendBuffer(buffer.byteBuf(), 0); CoreMessage recMessage = new CoreMessage(); recMessage.receiveBuffer(buffer.byteBuf()); Assert.assertEquals(ADDRESS2, recMessage.getAddressSimpleString()); Assert.assertEquals(33, recMessage.getMessageID()); Assert.assertEquals(propValue, recMessage.getSimpleStringProperty(SimpleString.toSimpleString("str-prop"))); } catch (Throwable e) { e.printStackTrace(); errors.incrementAndGet(); } } };
public void testChangeBodyString(String newString) { CoreMessage coreMessage = decodeMessage(); coreMessage.putStringProperty("newProperty", "newValue"); ActiveMQBuffer legacyBuffer = coreMessage.getBodyBuffer(); legacyBuffer.resetWriterIndex(); legacyBuffer.clear(); TextMessageUtil.writeBodyText(legacyBuffer, SimpleString.toSimpleString(newString)); ByteBuf newbuffer = Unpooled.buffer(150000); coreMessage.sendBuffer(newbuffer, 0); newbuffer.readerIndex(0); CoreMessage newCoreMessage = new CoreMessage(); newCoreMessage.receiveBuffer(newbuffer); SimpleString newText = TextMessageUtil.readBodyText(newCoreMessage.getReadOnlyBodyBuffer()); Assert.assertEquals(newString, newText.toString()); // coreMessage.putStringProperty() }
@Test public void testSaveReceiveLimitedBytes() { CoreMessage empty = new CoreMessage().initBuffer(100); System.out.println("R " + empty.getBodyBuffer().readerIndex() + " W " + empty.getBodyBuffer().writerIndex()); empty.getBodyBuffer().writeByte((byte)7); System.out.println("R " + empty.getBodyBuffer().readerIndex() + " W " + empty.getBodyBuffer().writerIndex()); ByteBuf buffer = Unpooled.buffer(200); empty.sendBuffer(buffer, 0); CoreMessage empty2 = new CoreMessage(); empty2.receiveBuffer(buffer); Assert.assertEquals((byte)7, empty2.getBodyBuffer().readByte()); System.out.println("Readable :: " + empty2.getBodyBuffer().readerIndex() + " writer :" + empty2.getBodyBuffer().writerIndex()); try { empty2.getBodyBuffer().readByte(); Assert.fail("should throw exception"); } catch (Exception expected) { } }