public void ReturnsMaxValue_WhenSet() { var sut = new SqsReceiveDelayCalculator(new SqsPollingQueueReaderOptions { InitialDelay = TimeSpan.FromSeconds(10), MaxDelay = TimeSpan.FromSeconds(5) }); sut.CalculateSecondsToDelay(Array.Empty <Message>()); var result = sut.CalculateSecondsToDelay(Array.Empty <Message>()); result.TotalSeconds.Should().Be(5); }
public void ReturnsInitialDelayForAllCalls_WhenNotUsingExponentialBackOff() { var sut = new SqsReceiveDelayCalculator(new SqsPollingQueueReaderOptions { InitialDelay = TimeSpan.FromSeconds(10), UseExponentialBackoff = false }); sut.CalculateSecondsToDelay(Array.Empty <Message>()); sut.CalculateSecondsToDelay(Array.Empty <Message>()); var result = sut.CalculateSecondsToDelay(Array.Empty <Message>()); result.TotalSeconds.Should().Be(10); }
public void ReturnsZeroTimeSpan_WhenMoreThanOneMessage() { var sut = new SqsReceiveDelayCalculator(new SqsPollingQueueReaderOptions { InitialDelay = TimeSpan.FromSeconds(2) }); var result = sut.CalculateSecondsToDelay(new Message[] { new Message() }); result.TotalSeconds.Should().Be(0); }
public void ReturnsExpectedDelay_WhenUsingExponentialBackOff(int numberOfEmptyPolls, int expected) { var sut = new SqsReceiveDelayCalculator(new SqsPollingQueueReaderOptions { InitialDelay = TimeSpan.FromSeconds(2) }); TimeSpan result = TimeSpan.FromSeconds(-1); for (int i = 0; i < numberOfEmptyPolls; i++) { result = sut.CalculateSecondsToDelay(Array.Empty <Message>()); } result.TotalSeconds.Should().Be(expected); }