public void TriggerFiresIfOutsidePeriod()
        {
            var clockMock = new Mock <IClock>();
            var time      = DateTime.Now;

            clockMock.Setup(c => c.Now).Returns(() =>
            {
                time = time.AddMinutes(10);
                return(time);
            });
            var inner = new TriggerStub
            {
                OnCheckAction = () => new IntegrationRequest("Test")
            };
            var trigger = new RollUp(TimeSpan.FromMinutes(5))
            {
                InnerTrigger = inner,
                Clock        = clockMock.Object
            };

            trigger.Reset();
            var request = trigger.Check();

            Assert.IsNotNull(request);
        }
        public void ResetSetsTheNextTime()
        {
            var clockMock = new Mock <IClock>();

            clockMock.Setup(c => c.Now).Returns(() => DateTime.Now);
            var trigger = new RollUp(TimeSpan.FromMinutes(5))
            {
                Clock = clockMock.Object
            };

            trigger.Reset();
            var expected = DateTime.Now.AddMinutes(5);
            var actual   = trigger.NextTime.Value;

            DateTimeAssert.AreEqual(expected, actual, DateTimeCompare.IgnoreSeconds);
        }