static void dissectRemovePublicationCleanup(
        final MutableDirectBuffer buffer, final int offset, final StringBuilder builder)
    {
        int absoluteOffset = offset;
        absoluteOffset += dissectLogHeader(CONTEXT, REMOVE_PUBLICATION_CLEANUP, buffer, absoluteOffset, builder);

        builder.append(": sessionId=").append(buffer.getInt(absoluteOffset, LITTLE_ENDIAN));
        absoluteOffset += SIZE_OF_INT;

        builder.append(" streamId=").append(buffer.getInt(absoluteOffset, LITTLE_ENDIAN));
        absoluteOffset += SIZE_OF_INT;

        builder.append(" channel=");
        buffer.getStringAscii(absoluteOffset, builder);
    }
@Test
    void dissectRemovePublicationCleanup()
    {
        final int offset = 12;
        internalEncodeLogHeader(buffer, offset, 22, 88, () -> 2_500_000_000L);
        buffer.putInt(offset + LOG_HEADER_LENGTH, 42, LITTLE_ENDIAN);
        buffer.putInt(offset + LOG_HEADER_LENGTH + SIZE_OF_INT, 11, LITTLE_ENDIAN);
        buffer.putStringAscii(offset + LOG_HEADER_LENGTH + SIZE_OF_INT * 2, "channel uri");

        DriverEventDissector.dissectRemovePublicationCleanup(buffer, offset, builder);

        assertEquals("[2.500000000] " + CONTEXT + ": " + REMOVE_PUBLICATION_CLEANUP.name() +
            " [22/88]: sessionId=42 streamId=11 channel=channel uri",
            builder.toString());
    }