public long onStatusMessage(
        final StatusMessageFlyweight flyweight,
        final InetSocketAddress receiverAddress,
        final long senderLimit,
        final int initialTermId,
        final int positionBitsToShift,
        final long timeNs)
    {
        return processStatusMessage(flyweight, senderLimit, initialTermId, positionBitsToShift, timeNs, true);
    }
@Test
    void shouldReportSenderLimitUntilGroupMinSizeIsReached()
    {
        final UdpChannel udpChannel = UdpChannel.parse(
            "aeron:udp?endpoint=224.20.30.39:24326|interface=localhost|fc=min,g:/3");

        flowControl.initialize(
            newContext(), countersManager, udpChannel, 0, 0, 0, 0, 0);

        final int senderLimit = 5000;
        final int termOffset = 6000;
        assertEquals(senderLimit, onStatusMessage(flowControl, 1, termOffset, senderLimit));
        assertEquals(senderLimit, onIdle(flowControl, senderLimit));
        assertEquals(senderLimit, onStatusMessage(flowControl, 2, termOffset, senderLimit));
        assertEquals(senderLimit, onIdle(flowControl, senderLimit));
        assertEquals(senderLimit, onStatusMessage(flowControl, 2, termOffset, senderLimit));
        assertEquals(senderLimit, onIdle(flowControl, senderLimit));
        assertEquals(termOffset + WINDOW_LENGTH, onStatusMessage(flowControl, 3, termOffset, senderLimit));
        assertEquals(termOffset + WINDOW_LENGTH, onIdle(flowControl, senderLimit));
    }