public void ShouldOnlyFireBetween7AMAnd7PMOnWeekdays() {
            FilterTrigger outerTrigger = new FilterTrigger(new TimeSpan(), new TimeSpan(), (DayOfWeek[])DayOfWeek.GetValues(typeof(DayOfWeek)), null, (IDateTimeProvider)mockDateTime.MockInstance);
            outerTrigger.StartTime = new TimeSpan(19, 0, 0);
            outerTrigger.EndTime = new TimeSpan(7, 0, 0);
            outerTrigger.InnerTrigger = trigger;

            trigger.StartTime = new TimeSpan(0, 0, 0);
            trigger.EndTime = new TimeSpan(23, 59, 59);
            trigger.Weekdays.Clear();
            trigger.Weekdays.Add(DayOfWeek.Saturday);
            trigger.Weekdays.Add(DayOfWeek.Sunday);
            mockTrigger.SetReturnValue("Fire", true);

            mockDateTime.SetReturnValue("get_Now", new DateTime(2006, 8, 10, 11, 30, 0, 0)); // Thurs midday
            Assert.AreEqual(true, outerTrigger.Fire());

            mockDateTime.SetReturnValue("get_Now", new DateTime(2006, 8, 10, 19, 30, 0, 0)); // Thurs evening
            Assert.AreEqual(false, outerTrigger.Fire());

            mockDateTime.SetReturnValue("get_Now", new DateTime(2006, 8, 12, 11, 30, 0, 0)); // Sat midday
            Assert.AreEqual(false, outerTrigger.Fire());

            mockDateTime.SetReturnValue("get_Now", new DateTime(2006, 8, 12, 19, 30, 0, 0)); // Sat evening
            Assert.AreEqual(false, outerTrigger.Fire());
        }
        protected void CreateMocksAndInitialiseObjectUnderTest() {
            mockTrigger = new DynamicMock(typeof(ITrigger));
            mockDateTime = new DynamicMock(typeof(IDateTimeProvider));

            trigger = new FilterTrigger(new TimeSpan(10, 0, 0), new TimeSpan(11, 0, 0), new DayOfWeek[] { DayOfWeek.Wednesday }, (ITrigger)mockTrigger.MockInstance, (IDateTimeProvider)mockDateTime.MockInstance);
        }