예제 #1
0
        public void CreateCalendarDefinitions_ForValidDataFromFile_WillCreateCalendarDefintions()
        {
            var result = CustomCalendarConfig.CreateCalendarDefinitions(Path.Combine(AppDomain.CurrentDomain.BaseDirectory + @"\TestData", "test-calendars.json"));

            Assert.AreEqual(2, result.Count);

            Assert.AreEqual("AU_Without_Public_Holidays", result[0].CalendarName);
            Assert.AreEqual("Exclude", result[0].Action);
            Assert.AreEqual(new DateTime(2017, 1, 1), result[0].Dates[0]);
            Assert.AreEqual(new DateTime(2017, 1, 2), result[0].Dates[1]);
            Assert.AreEqual(new DateTime(2017, 1, 26), result[0].Dates[2]);
            Assert.AreEqual(new DateTime(2017, 4, 14), result[0].Dates[3]);
            Assert.AreEqual(new DateTime(2017, 4, 15), result[0].Dates[4]);
            Assert.AreEqual(new DateTime(2017, 4, 16), result[0].Dates[5]);
            Assert.AreEqual(new DateTime(2017, 4, 17), result[0].Dates[6]);
            Assert.AreEqual(new DateTime(2017, 4, 25), result[0].Dates[7]);
            Assert.AreEqual(new DateTime(2017, 6, 12), result[0].Dates[8]);
            Assert.AreEqual(new DateTime(2017, 12, 25), result[0].Dates[9]);
            Assert.AreEqual(new DateTime(2017, 12, 26), result[0].Dates[10]);

            Assert.AreEqual("NZ_Without_Public_Holidays", result[1].CalendarName);
            Assert.AreEqual("Exclude", result[1].Action);
            Assert.AreEqual(new DateTime(2017, 1, 1), result[1].Dates[0]);
            Assert.AreEqual(new DateTime(2017, 1, 2), result[1].Dates[1]);
            Assert.AreEqual(new DateTime(2017, 1, 26), result[1].Dates[2]);
            Assert.AreEqual(new DateTime(2017, 4, 14), result[1].Dates[3]);
            Assert.AreEqual(new DateTime(2017, 4, 15), result[1].Dates[4]);
            Assert.AreEqual(new DateTime(2017, 4, 16), result[1].Dates[5]);
            Assert.AreEqual(new DateTime(2017, 4, 17), result[1].Dates[6]);
            Assert.AreEqual(new DateTime(2017, 4, 25), result[1].Dates[7]);
            Assert.AreEqual(new DateTime(2017, 6, 12), result[1].Dates[8]);
            Assert.AreEqual(new DateTime(2017, 12, 25), result[1].Dates[9]);
            Assert.AreEqual(new DateTime(2017, 12, 26), result[1].Dates[10]);
        }
예제 #2
0
        public void CreateCalendarDefinitions_ForMissingAction_WillThrowException()
        {
            var sr = TestHelper.GetFileContents("test-calendars-missing-action.json");
            var ex = Assert.Throws <Exception>(() => CustomCalendarConfig.CreateCalendarDefinitions(sr));

            Assert.AreEqual("Failed to create calendars from config - one or more of the calendars has a blank or missing Action value", ex.Message);
        }
예제 #3
0
        public void CreateCalendarDefinitions_ForValidData_WillCreateCalendarDefintions()
        {
            var sr     = TestHelper.GetFileContents("test-calendars.json");
            var result = CustomCalendarConfig.CreateCalendarDefinitions(sr);

            Assert.AreEqual(2, result.Count);

            Assert.AreEqual("AU_Without_Public_Holidays", result[0].CalendarName);
            Assert.AreEqual("Exclude", result[0].Action);
            Assert.AreEqual(new DateTime(2017, 1, 1), result[0].Dates[0]);
            Assert.AreEqual(new DateTime(2017, 1, 2), result[0].Dates[1]);
            Assert.AreEqual(new DateTime(2017, 1, 26), result[0].Dates[2]);
            Assert.AreEqual(new DateTime(2017, 4, 14), result[0].Dates[3]);
            Assert.AreEqual(new DateTime(2017, 4, 15), result[0].Dates[4]);
            Assert.AreEqual(new DateTime(2017, 4, 16), result[0].Dates[5]);
            Assert.AreEqual(new DateTime(2017, 4, 17), result[0].Dates[6]);
            Assert.AreEqual(new DateTime(2017, 4, 25), result[0].Dates[7]);
            Assert.AreEqual(new DateTime(2017, 6, 12), result[0].Dates[8]);
            Assert.AreEqual(new DateTime(2017, 12, 25), result[0].Dates[9]);
            Assert.AreEqual(new DateTime(2017, 12, 26), result[0].Dates[10]);

            Assert.AreEqual("NZ_Without_Public_Holidays", result[1].CalendarName);
            Assert.AreEqual("Exclude", result[1].Action);
            Assert.AreEqual(new DateTime(2017, 1, 1), result[1].Dates[0]);
            Assert.AreEqual(new DateTime(2017, 1, 2), result[1].Dates[1]);
            Assert.AreEqual(new DateTime(2017, 1, 26), result[1].Dates[2]);
            Assert.AreEqual(new DateTime(2017, 4, 14), result[1].Dates[3]);
            Assert.AreEqual(new DateTime(2017, 4, 15), result[1].Dates[4]);
            Assert.AreEqual(new DateTime(2017, 4, 16), result[1].Dates[5]);
            Assert.AreEqual(new DateTime(2017, 4, 17), result[1].Dates[6]);
            Assert.AreEqual(new DateTime(2017, 4, 25), result[1].Dates[7]);
            Assert.AreEqual(new DateTime(2017, 6, 12), result[1].Dates[8]);
            Assert.AreEqual(new DateTime(2017, 12, 25), result[1].Dates[9]);
            Assert.AreEqual(new DateTime(2017, 12, 26), result[1].Dates[10]);
        }
예제 #4
0
        public SchedulerHost()
        {
            try
            {
                _logger = LogManager.GetLogger <SchedulerHost>();
                var jobDefinitions      = JobConfig.CreateJobDefinitions(SchedulerConfig.JobsFile);
                var calendarDefinitions = CustomCalendarConfig.CreateCalendarDefinitions(SchedulerConfig.CalendarsFile);
                var customCalendars     = CustomCalendarFactory.CreateAnnualCalendarsWithSpecifiedDatesExcluded(calendarDefinitions);

                _conductor = new Conductor(jobDefinitions, customCalendars, 60000, 90000);
            }
            catch (Exception e)
            {
                _logger.Error($"In constructor: {e.Message}\n\r{e.StackTrace}");
                throw;
            }
        }