public static void WeeklySchedule_HourAndMinuteInRange_Valid()
        {
            var o = new WeeklyScheduleInUtc {
                Hour = 22, Minute = 23
            };

            Assert.NotNull(o);
            o.ThrowIfInvalid();
        }
        public void WeeklyScheduleRoundtripWillDeserializeIntoBaseClass()
        {
            var schedule = new WeeklyScheduleInUtc {
                DaysOfWeek = new[] { DayOfWeek.Tuesday }, Hour = 4, Minute = 22
            };
            var json             = this.bsonSerializer.SerializeToString(schedule);
            var newScheduleBase  = this.bsonSerializer.Deserialize <ScheduleBase>(json);
            var newScheduleTyped = Assert.IsType <WeeklyScheduleInUtc>(newScheduleBase);

            Assert.Equal(schedule.DaysOfWeek, newScheduleTyped.DaysOfWeek);
            Assert.Equal(schedule.Hour, newScheduleTyped.Hour);
            Assert.Equal(schedule.Minute, newScheduleTyped.Minute);
            Assert.Equal(schedule, newScheduleTyped);
        }
        public static void GetCronExpressionFromSchedule_Weekly_Works()
        {
            var schedule = new WeeklyScheduleInUtc()
            {
                DaysOfWeek = new[] { DayOfWeek.Thursday },
                Hour       = 21,
                Minute     = 17,
            };
            var cron = ScheduleCronExpressionConverter.ToCronExpression(schedule);

            Assert.Equal("17 21 * * 4", cron);

            var newSchedule      = ScheduleCronExpressionConverter.FromCronExpression(cron);
            var newScheduleTyped = Assert.IsType <WeeklyScheduleInUtc>(newSchedule);

            Assert.Equal(schedule.GetType(), newScheduleTyped.GetType());
            Assert.Equal(schedule.DaysOfWeek.Single(), newScheduleTyped.DaysOfWeek.Single());
            Assert.Equal(schedule.Hour, newScheduleTyped.Hour);
            Assert.Equal(schedule.Minute, newScheduleTyped.Minute);
        }
Beispiel #4
0
        public CronDummyFactory()
        {
            AutoFixtureBackedDummyFactory.UseRandomConcreteSubclassForDummy <ScheduleBase>();

            AutoFixtureBackedDummyFactory.AddDummyCreator(
                () =>
            {
                var result = new DailyScheduleInUtc
                {
                    Hour   = A.Dummy <int>().ThatIsInRange(0, 23),
                    Minute = A.Dummy <int>().ThatIsInRange(0, 59),
                };

                return(result);
            });

            AutoFixtureBackedDummyFactory.AddDummyCreator(
                () =>
            {
                var result = new ExpressionSchedule
                {
                    CronExpression = "*/" + A.Dummy <int>().ThatIsInRange(1, 4) + " * * * *",
                };

                return(result);
            });

            AutoFixtureBackedDummyFactory.AddDummyCreator(
                () =>
            {
                var result = new HourlySchedule
                {
                    Minute = A.Dummy <int>().ThatIsInRange(0, 59),
                };

                return(result);
            });

            AutoFixtureBackedDummyFactory.AddDummyCreator(
                () =>
            {
                var result = new IntervalSchedule()
                {
                    Interval = new TimeSpan(A.Dummy <long>().ThatIsInRange(0, 10000))
                };

                return(result);
            });

            AutoFixtureBackedDummyFactory.AddDummyCreator(
                () =>
            {
                var result = new MonthlyScheduleInUtc()
                {
                    DaysOfMonth = new[]
                    {
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                    }.Distinct().ToArray(),
                    Hour   = A.Dummy <int>().ThatIsInRange(0, 23),
                    Minute = A.Dummy <int>().ThatIsInRange(0, 59),
                };

                return(result);
            });

            AutoFixtureBackedDummyFactory.AddDummyCreator(
                () =>
            {
                var result = new WeeklyScheduleInUtc()
                {
                    DaysOfWeek = Some.Dummies <DayOfWeek>(3).ToArray(),
                    Hour       = A.Dummy <int>().ThatIsInRange(0, 23),
                    Minute     = A.Dummy <int>().ThatIsInRange(0, 59),
                };

                return(result);
            });

            AutoFixtureBackedDummyFactory.AddDummyCreator(
                () =>
            {
                var result = new YearlyScheduleInUtc()
                {
                    MonthsOfYear = Some.Dummies <MonthOfYear>(4).ToArray(),
                    DaysOfMonth  = new[]
                    {
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                        A.Dummy <int>().ThatIsInRange(0, 28),
                    }.Distinct().ToArray(),
                    Hour   = A.Dummy <int>().ThatIsInRange(0, 23),
                    Minute = A.Dummy <int>().ThatIsInRange(0, 59),
                };

                return(result);
            });
        }
 public void WeeklySchedule_HourAndMinuteInRange_Valid()
 {
     var o = new WeeklyScheduleInUtc { Hour = 22, Minute = 23 };
     Assert.NotNull(o);
     o.ThrowIfInvalid();
 }
 public void WeeklyScheduleInUtc_DefaultDayOfWeek_IsSunday()
 {
     var o = new WeeklyScheduleInUtc();
     Assert.Equal(DayOfWeek.Sunday, o.DaysOfWeek.Single());
 }
        public void GetCronExpressionFromSchedule_WeeklyMultipleDays_Works()
        {
            var schedule = new WeeklyScheduleInUtc()
                               {
                                   DaysOfWeek = new[] { DayOfWeek.Tuesday, DayOfWeek.Thursday },
                                   Hour = 21,
                                   Minute = 17
                               };
            var cron = ScheduleCronExpressionConverter.ToCronExpression(schedule);
            Assert.Equal("17 21 * * 2,4", cron);

            var newSchedule = ScheduleCronExpressionConverter.FromCronExpression(cron);
            var newScheduleTyped = Assert.IsType<WeeklyScheduleInUtc>(newSchedule);
            Assert.Equal(schedule.GetType(), newScheduleTyped.GetType());
            Assert.Equal(schedule.DaysOfWeek.First(), newScheduleTyped.DaysOfWeek.First());
            Assert.Equal(schedule.DaysOfWeek.Skip(1).First(), newScheduleTyped.DaysOfWeek.Skip(1).First());
            Assert.Equal(schedule.Hour, newScheduleTyped.Hour);
            Assert.Equal(schedule.Minute, newScheduleTyped.Minute);
        }
 public void WeeklyScheduleRoundTripDeserializesIntoBaseClass()
 {
     var schedule = new WeeklyScheduleInUtc { DaysOfWeek = new[] { DayOfWeek.Tuesday }, Hour = 4, Minute = 22 };
     var json = JsonConvert.SerializeObject(schedule);
     var newScheduleBase = JsonConvert.DeserializeObject<ScheduleBase>(json);
     var newScheduleTyped = Assert.IsType<WeeklyScheduleInUtc>(newScheduleBase);
     Assert.Equal(schedule.DaysOfWeek, newScheduleTyped.DaysOfWeek);
     Assert.Equal(schedule.Hour, newScheduleTyped.Hour);
     Assert.Equal(schedule.Minute, newScheduleTyped.Minute);
 }
        public static void WeeklyScheduleInUtc_DefaultDayOfWeek_IsSunday()
        {
            var o = new WeeklyScheduleInUtc();

            Assert.Equal(DayOfWeek.Sunday, o.DaysOfWeek.Single());
        }