Exemplo n.º 1
0
        public void DescriptionAndWorkingPeriodsTest()
        {
            var value = "* * * *";

            Assert.IsTrue(DayRuleParser.TryParse(value, out var obj));
            Assert.IsNull((obj.Description));
            Assert.IsNull(obj.WorkingPeriods);

            value = "* * * * [[]]";
            Assert.IsTrue(DayRuleParser.TryParse(value, out obj));
            Assert.IsNull((obj.Description));
            Assert.IsNull(obj.WorkingPeriods);

            value = "* * * * [[description]]";
            Assert.IsTrue(DayRuleParser.TryParse(value, out obj));
            Assert.AreEqual("description", obj.Description);
            Assert.IsNull(obj.WorkingPeriods);

            value = "* * * * 04:00-05:00,02:00-03:00";
            Assert.IsTrue(DayRuleParser.TryParse(value, out obj));
            Assert.IsNull((obj.Description));
            Assert.IsNotNull(obj.WorkingPeriods);
            Assert.AreEqual(2, obj.WorkingPeriods.Count);
            Assert.AreEqual(TimePeriod.Parse("04:00-05:00"), obj.WorkingPeriods[0]);
            Assert.AreEqual(TimePeriod.Parse("02:00-03:00"), obj.WorkingPeriods[1]);
        }
Exemplo n.º 2
0
        public void DayOfWeekMatcherTest()
        {
            var value = "* * * 1,3..6";

            Assert.IsTrue(DayRuleParser.TryParse(value, out var obj));
            Assert.AreEqual(2, obj.DayOfWeekMatchers.Count);
            Assert.IsInstanceOfType(obj.DayOfWeekMatchers[0], typeof(RangeDayOfWeekMatcher));
            Assert.IsInstanceOfType(obj.DayOfWeekMatchers[1], typeof(RangeDayOfWeekMatcher));
        }
Exemplo n.º 3
0
        public void DayOfMonthMatcherTest()
        {
            var value = "* * *,*%2,1../2 *";

            Assert.IsTrue(DayRuleParser.TryParse(value, out var obj));
            Assert.AreEqual(3, obj.DayOfMonthMatchers.Count);
            Assert.IsInstanceOfType(obj.DayOfMonthMatchers[0], typeof(RangeDayOfMonthMatcher));
            Assert.IsInstanceOfType(obj.DayOfMonthMatchers[1], typeof(ModuloDayOfMonthMatcher));
            Assert.IsInstanceOfType(obj.DayOfMonthMatchers[2], typeof(PeriodicDayOfMonthMatcher));
        }
        private static Calendar SetupFullCalendar()
        {
            var rules = new CalendarRules
            {
                { DayRulePolicy.Fallthrough, DayRuleParser.Parse("* * * * [[working day]] 08:30-17:30") },
                { DayRulePolicy.Fallthrough, DayRuleParser.Parse("* * * 6..7 [[non working day]]") }
            };

            return(new Calendar("Five Working Days Calendar", rules, "calendar description",
                                "this is a very long description"));
        }
Exemplo n.º 5
0
        public void YearMatcherTest()
        {
            var value = "*,*%2,1../2,*/Leap,*/NotLeap * * *";

            Assert.IsTrue(DayRuleParser.TryParse(value, out var obj));
            Assert.AreEqual(5, obj.YearMatchers.Count);
            Assert.IsInstanceOfType(obj.YearMatchers[0], typeof(RangeYearMatcher));
            Assert.IsInstanceOfType(obj.YearMatchers[1], typeof(ModuloYearMatcher));
            Assert.IsInstanceOfType(obj.YearMatchers[2], typeof(PeriodicYearMatcher));
            Assert.IsInstanceOfType(obj.YearMatchers[3], typeof(LeapYearMatcher));
            Assert.IsInstanceOfType(obj.YearMatchers[4], typeof(NotLeapYearMatcher));
        }
        public void TestRules(string dayRuleDefinition, DateTime[] matchingDates, DateTime[] unmatchingDates)
        {
            var dayRule = DayRuleParser.Parse(dayRuleDefinition);

            foreach (var @case in matchingDates)
            {
                Assert.IsTrue(dayRule.TryGetDayInfo(@case.Date, out var dayInfo));
                Assert.IsNotNull(dayInfo);
            }
            foreach (var @case in unmatchingDates)
            {
                Assert.IsFalse(dayRule.TryGetDayInfo(@case.Date, out var dayInfo));
                Assert.IsNull(dayInfo);
            }
        }
Exemplo n.º 7
0
        public void InvalidParseTests()
        {
            var value = @"";

            // ReSharper disable once NotAccessedVariable
            Assert.IsFalse(DayRuleParser.TryParse(value, out var obj));
            value = null;
            // ReSharper disable once ExpressionIsAlwaysNull
            Assert.IsFalse(DayRuleParser.TryParse(value, out obj));
            value = "  ";
            Assert.IsFalse(DayRuleParser.TryParse(value, out obj));
            value = "*";
            Assert.IsFalse(DayRuleParser.TryParse(value, out obj));
            value = "* *";
            Assert.IsFalse(DayRuleParser.TryParse(value, out obj));
            value = "* * *";
            Assert.IsFalse(DayRuleParser.TryParse(value, out obj));
        }
Exemplo n.º 8
0
 public void ValidParseTests(string dayRule)
 {
     Assert.IsTrue(DayRuleParser.TryParse(dayRule, out var obj));
     Assert.IsNotNull(obj);
 }