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 shouldNotIncludeReceiverMoreThanWindowSizeBehindMinPosition()
    {
        final UdpChannel udpChannel = UdpChannel.parse(
            "aeron:udp?endpoint=224.20.30.39:24326|interface=localhost|fc=min,g:/2");

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

        final int senderLimit = 5000;
        final int termOffset0 = WINDOW_LENGTH * 2;
        final int termOffset1 = termOffset0 - (WINDOW_LENGTH + 1);
        final int termOffset2 = termOffset0 - (WINDOW_LENGTH);

        assertEquals(senderLimit, onStatusMessage(flowControl, 1, termOffset0, senderLimit));
        assertEquals(senderLimit, onStatusMessage(flowControl, 2, termOffset1, senderLimit));
        assertEquals(termOffset2 + WINDOW_LENGTH, onStatusMessage(flowControl, 3, termOffset2, senderLimit));
    }