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

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

        builder.append(" id=").append(buffer.getLong(absoluteOffset, LITTLE_ENDIAN));
        absoluteOffset += SIZE_OF_LONG;

        builder.append(" channel=");
        buffer.getStringAscii(absoluteOffset, builder);
    }
@Test
    void dissectRemoveSubscriptionCleanup()
    {
        final int offset = 16;
        internalEncodeLogHeader(buffer, offset, 100, 100, () -> 100_000_000L);
        buffer.putInt(offset + LOG_HEADER_LENGTH, 33, LITTLE_ENDIAN);
        buffer.putLong(offset + LOG_HEADER_LENGTH + SIZE_OF_INT, 111_111_111_111L, LITTLE_ENDIAN);
        buffer.putStringAscii(offset + LOG_HEADER_LENGTH + SIZE_OF_INT + SIZE_OF_LONG, "test");

        DriverEventDissector.dissectRemoveSubscriptionCleanup(buffer, offset, builder);

        assertEquals("[0.100000000] " + CONTEXT + ": " + REMOVE_SUBSCRIPTION_CLEANUP.name() +
            " [100/100]: streamId=33 id=111111111111 channel=test",
            builder.toString());
    }