Ejemplo n.º 1
0
        public void ReAck_if_wrapped_scope()
        {
            var connection = Substitute.For <IConnection>();

            var sut = new BatchAckSender(connection, 1)
            {
                Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1)
            };

            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65533
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65534
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65535
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 1
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 2
            });
            var actual = sut.ShouldReAck(new MessageFrame {
                SequenceNumber = 65534
            });

            actual.Should().BeTrue();
        }
Ejemplo n.º 2
0
        public void do_not_reack_when_Sequence_wraps_and_the_threshold_is_not_fulfilled()
        {
            var connection = Substitute.For <IConnection>();

            var sut = new BatchAckSender(connection, 1)
            {
                Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1)
            };

            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65530
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65531
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65532
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65533
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65534
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65535
            });
            var actual = sut.ShouldReAck(new MessageFrame {
                SequenceNumber = 1
            });

            actual.Should().BeFalse();
        }
Ejemplo n.º 3
0
        public void do_not_send_an_ack_For_the_first_message()
        {
            var connection = Substitute.For <IConnection>();

            var sut = new BatchAckSender(connection, 1)
            {
                Threshold = 10, TimeoutBeforeSendingAck = TimeSpan.FromDays(1)
            };

            sut.AddFrame(new MessageFrame {
                SequenceNumber = 1
            });

            connection.DidNotReceiveWithAnyArgs().Send(null);
        }
Ejemplo n.º 4
0
        public void do_not_ack_When_Sequence_is_wrapping_but_still_within_the_limit()
        {
            var connection = Substitute.For <IConnection>();

            var sut = new BatchAckSender(connection, 1)
            {
                Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1)
            };

            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65535
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 1
            });

            connection.DidNotReceiveWithAnyArgs().Send(null);
        }
Ejemplo n.º 5
0
        public void ack_When_Sequence_is_wrapping_and_over_the_specified_amount()
        {
            var connection = Substitute.For <IConnection>();

            var sut = new BatchAckSender(connection, 1)
            {
                Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1)
            };

            sut.AddFrame(new MessageFrame {
                SequenceNumber = 65535
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 1
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 2
            });

            connection.ReceivedWithAnyArgs().Send(null);
        }
Ejemplo n.º 6
0
        public void do_not_reack_long_after_the_sequence()
        {
            var connection = Substitute.For <IConnection>();

            var sut = new BatchAckSender(connection, 1)
            {
                Threshold = 3, TimeoutBeforeSendingAck = TimeSpan.FromDays(1)
            };

            sut.AddFrame(new MessageFrame {
                SequenceNumber = 1
            });
            sut.AddFrame(new MessageFrame {
                SequenceNumber = 2
            });
            var actual = sut.ShouldReAck(new MessageFrame {
                SequenceNumber = 200
            });

            actual.Should().BeFalse();
        }