### Question:
TransactionBlockEvent extends SignedBinaryMessage { @Override public void readMarshallable(@NotNull WireIn wire) throws IORuntimeException { reset(); super.readMarshallable(wire); wire.read("transactions").sequence(this, (tbe, in) -> { while (in.hasNextSequenceItem()) { tbe.addTransaction(in.object(SignedBinaryMessage.class)); } }); } TransactionBlockEvent();  TransactionBlockEvent(long capacity, boolean isFixedCapacity); TransactionBlockEvent dtoParser(DtoParser dtoParser); @Override void reset(); TransactionBlockEvent addTransaction(SignedBinaryMessage message); void replay(AllMessages allMessages); @Override void readMarshallable(@NotNull WireIn wire); @NotNull @Override T deepCopy(); @Override T copyTo(@NotNull T t); @Override void writeMarshallable(@NotNull WireOut wire); @Override int intMessageType(); Bytes transactions(); int weekNumber(); TransactionBlockEvent weekNumber(int weekNumber); long blockNumber(); TransactionBlockEvent blockNumber(long blockNumber); int region(); TransactionBlockEvent region(int region); TransactionBlockEvent region(String region); int count(); boolean isBufferFull(); static void printNumberOfObjects(); static public int MAX_16_BIT_NUMBER; static public long _1_MB; static public long _2_MB; static public long _4_MB; static public long _16_MB; static public long _32_MB; }### Answer:
@Test public void readMarshallable() { TransactionBlockEvent tbe = Marshallable.fromString("!cash.xcl.api.dto.TransactionBlockEvent {\n" + " sourceAddress: 0,\n" + " eventTime: 0,\n" + " region: gb1dn,\n" + " weekNumber: 0,\n" + " blockNumber: 0,\n" + " transactions: [\n" + " !cash.xcl.api.dto.CreateNewAddressCommand { sourceAddress: 1, eventTime: 2, publicKey: !!binary AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=, region: gb1dn },\n" + " !cash.xcl.api.dto.TransferValueCommand { sourceAddress: 0, eventTime: 3, toAddress: 1, amount: 1.23, currency: XCL, reference: init }\n" + " ]\n" + "}\n"); StringWriter out = new StringWriter(); tbe.replay(Mocker.logging(AllMessages.class, "out ", out)); assertEquals("out createNewAddressCommand[!CreateNewAddressCommand {\n" + " sourceAddress: l,\n" + " eventTime: 2,\n" + " publicKey: !!binary AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=,\n" + " region: GBLDN,\n" + " newAddressSeed: ooooooooooooo\n" + "}\n" + "]\n" + "out transferValueCommand[!TransferValueCommand {\n" + " sourceAddress: o,\n" + " eventTime: 3,\n" + " toAddress: l,\n" + " amount: 1.23,\n" + " currency: XCL,\n" + " reference: init\n" + "}\n" + "]\n", out.toString().replaceAll("\r", "")); }