public void Process_WhenAdvisoryIsZero_ShouldReturnTrue()
        {
            // Arrange

            // Act
            AdvisoryDelayHandler target = new AdvisoryDelayHandler();
            var actual = target.Process(null);

            // Assert
            actual.Should().Be.True();
        }
        public void Process_WhenWaitTimeLessThanZero_ShouldReturnQuickly()
        {
            // Arrange
            const long delayTime = 100;
            Mock<IDateTime> dateTimeMock = new Mock<IDateTime>();
            dateTimeMock.Setup(m => m.UtcNow).Returns(new DateTimeWrap(2016, 2, 1));
            long advisoryDelay = new DateTime(2016, 2, 1).Ticks + delayTime;

            // Act
            AdvisoryDelayHandler target = new AdvisoryDelayHandler(dateTimeMock.Object);
            UnitTestHelper.SetPrivateProperty(target, "_advisoryDelay", advisoryDelay);

            Stopwatch stopwatch = Stopwatch.StartNew();
            var actual = target.Process(null);
            stopwatch.Stop();

            // Assert
            actual.Should().Be.True();
            stopwatch.ElapsedMilliseconds.Should().Be.LessThan(delayTime);
        }