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]); }
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)); }
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")); }
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); } }
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)); }
public void ValidParseTests(string dayRule) { Assert.IsTrue(DayRuleParser.TryParse(dayRule, out var obj)); Assert.IsNotNull(obj); }