public void deliver_last_frame_within_the_specified_ack_count() { var connection = Substitute.For <IConnection>(); MessageFrame deliveredFrame = null; var sut = new BatchAckReceiver(connection, frame => deliveredFrame = frame, 5) { Threshold = 5 }; sut.AddFrame(new MessageFrame { SequenceNumber = 1 }); sut.AddFrame(new MessageFrame { SequenceNumber = 2 }); sut.AddFrame(new MessageFrame { SequenceNumber = 3 }); sut.AddFrame(new MessageFrame { SequenceNumber = 4 }); sut.AddFrame(new MessageFrame { SequenceNumber = 5 }); deliveredFrame.SequenceNumber.Should().Be(5); }
public void do_not_deliver_message_beoyend_the_specified_sequence() { var connection = Substitute.For <IConnection>(); MessageFrame deliveredFrame = null; var sut = new BatchAckReceiver(connection, frame => deliveredFrame = frame, 4) { Threshold = 1 }; sut.AddFrame(new MessageFrame { SequenceNumber = 1 }); sut.AddFrame(new MessageFrame { SequenceNumber = 2 }); deliveredFrame.SequenceNumber.Should().Be(1); }
public void Should_be_able_to_ack_simple_sequence() { var connection = Substitute.For <IConnection>(); MessageFrame deliveredFrame = null; var sut = new BatchAckReceiver(connection, frame => deliveredFrame = frame, 4) { Threshold = 1 }; sut.AddFrame(new MessageFrame { SequenceNumber = 1 }); sut.AddFrame(new MessageFrame { SequenceNumber = 2 }); sut.Confirm(new AckFrame(1, 1)); deliveredFrame.SequenceNumber.Should().Be(2); }