public CounterMessageFlyweight labelBuffer(
        final DirectBuffer labelBuffer, final int labelOffset, final int labelLength)
    {
        final int labelLengthOffset = labelLengthOffset();
        buffer.putInt(offset + labelLengthOffset, labelLength);
        if (null != labelBuffer && labelLength > 0)
        {
            buffer.putBytes(offset + labelLengthOffset + SIZE_OF_INT, labelBuffer, labelOffset, labelLength);
        }

        return this;
    }
@Test
    void labelBuffer()
    {
        final int offset = 40;
        buffer.setMemory(0, offset, (byte)-1);
        flyweight.wrap(buffer, offset);
        flyweight.keyBuffer(newBuffer(16), 6, 9);

        flyweight.labelBuffer(newBuffer(32), 2, 21);

        assertEquals(21, flyweight.labelBufferLength());
        assertEquals(KEY_BUFFER_OFFSET + 16, flyweight.labelBufferOffset());
        assertEquals(KEY_BUFFER_OFFSET + 37, flyweight.length());
    }