public void do_not_reack_when_Sequence_wraps() { var connection = Substitute.For <IConnection>(); var sut = new AckSender(connection, 1) { Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1) }; sut.AckFrame(new MessageFrame { SequenceNumber = 65531 }); sut.AckFrame(new MessageFrame { SequenceNumber = 65532 }); sut.AckFrame(new MessageFrame { SequenceNumber = 65533 }); sut.AckFrame(new MessageFrame { SequenceNumber = 65534 }); sut.AckFrame(new MessageFrame { SequenceNumber = 65535 }); var actual = sut.ShouldReAck(new MessageFrame { SequenceNumber = 1 }); actual.Should().BeFalse(); }
public void ReAck_if_wrapped_scope() { var connection = Substitute.For <IConnection>(); var sut = new AckSender(connection, 1) { Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1) }; sut.AckFrame(new MessageFrame { SequenceNumber = 65533 }); sut.AckFrame(new MessageFrame { SequenceNumber = 65534 }); sut.AckFrame(new MessageFrame { SequenceNumber = 65535 }); sut.AckFrame(new MessageFrame { SequenceNumber = 1 }); sut.AckFrame(new MessageFrame { SequenceNumber = 2 }); var actual = sut.ShouldReAck(new MessageFrame { SequenceNumber = 65534 }); actual.Should().BeTrue(); }
public void do_not_ack_When_Sequence_is_wrapping_but_still_within_the_limit() { var connection = Substitute.For <IConnection>(); var sut = new AckSender(connection, 1) { Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1) }; sut.AckFrame(new MessageFrame { SequenceNumber = 65535 }); sut.AckFrame(new MessageFrame { SequenceNumber = 1 }); connection.DidNotReceiveWithAnyArgs().Send(null); }
public void send_an_ack_For_the_last_message_in_the_sequence() { var connection = Substitute.For <IConnection>(); var sut = new AckSender(connection, 1) { Threshold = 2, TimeoutBeforeSendingAck = TimeSpan.FromDays(1) }; sut.AckFrame(new MessageFrame { SequenceNumber = 1 }); sut.AckFrame(new MessageFrame { SequenceNumber = 21 }); connection.ReceivedWithAnyArgs().Send(null); }
public void ack_When_Sequence_is_wrapping_and_over_the_specified_amount() { var connection = Substitute.For <IConnection>(); var sut = new AckSender(connection, 1) { Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1) }; sut.AckFrame(new MessageFrame { SequenceNumber = 65535 }); sut.AckFrame(new MessageFrame { SequenceNumber = 1 }); sut.AckFrame(new MessageFrame { SequenceNumber = 2 }); connection.ReceivedWithAnyArgs().Send(null); }
public void do_not_reack_long_after_the_sequence() { var connection = Substitute.For <IConnection>(); var sut = new AckSender(connection, 1) { Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1) }; sut.AckFrame(new MessageFrame { SequenceNumber = 1 }); sut.AckFrame(new MessageFrame { SequenceNumber = 2 }); var actual = sut.ShouldReAck(new MessageFrame { SequenceNumber = 200 }); actual.Should().BeFalse(); }
public void do_not_send_an_ack_For_the_first_message() { var connection = Substitute.For <IConnection>(); var sut = new AckSender(connection, 1) { Threshold = 10, TimeoutBeforeSendingAck = TimeSpan.FromDays(1) }; sut.AckFrame(new MessageFrame { SequenceNumber = 1 }); connection.DidNotReceiveWithAnyArgs().Send(null); }