public void Every5Hours() { var pattern = PatternFactory.Create("5.hours"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.True((next - DateTime.UtcNow).TotalHours >= 4 && (next - DateTime.UtcNow).TotalHours < 6); }
public void Every5Weeks() { var pattern = PatternFactory.Create("5.weeks"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.True((next - DateTime.UtcNow).TotalDays / 7 >= 4 && (next - DateTime.UtcNow).TotalDays / 7 < 6); }
public void Every5Minutes() { var pattern = PatternFactory.Create("5.minutes"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.True((next - DateTime.UtcNow).TotalMinutes >= 4 && (next - DateTime.UtcNow).TotalMinutes < 6); }
public void Creates_List_Of_Winning_Patterns_Based_On_Board_Size(int size, IEnumerable <string> expected) { var factory = new PatternFactory(); var patterns = factory.Create(size); patterns.Should().BeEquivalentTo(expected); }
public void Every5Seconds() { var pattern = PatternFactory.Create("5.seconds"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.True((next - DateTime.UtcNow).TotalSeconds >= 4 && (next - DateTime.UtcNow).TotalSeconds < 6); }
public void Every5Months() { var pattern = PatternFactory.Create("5.months"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.Equal("5.months", pattern.Value); Assert.True((next - DateTime.UtcNow).TotalDays / 30 >= 4 && (next - DateTime.UtcNow).TotalDays / 30 < 6); }
public void EveryMondayAtMidnight() { var pattern = PatternFactory.Create("Monday.00.00.00"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.Equal(DayOfWeek.Monday, next.DayOfWeek); Assert.Equal(0, next.Hour); Assert.Equal(0, next.Minute); Assert.Equal(0, next.Second); }
public void EveryDayInWeek() { var pattern = PatternFactory.Create("**.23.57.10"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.True(next <= DateTime.UtcNow.AddDays(1)); Assert.Equal(23, next.Hour); Assert.Equal(57, next.Minute); Assert.Equal(10, next.Second); }
public void Every5thOfMonth() { var pattern = PatternFactory.Create("**.05.23.57.01"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.Equal(5, next.Day); Assert.Equal(23, next.Hour); Assert.Equal(57, next.Minute); Assert.Equal(1, next.Second); }
public void EverySaturdayAndSundayAt23_57_01() { var pattern = PatternFactory.Create("Saturday|Sunday.23.57.01"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); Assert.True(next.DayOfWeek == DayOfWeek.Saturday || next.DayOfWeek == DayOfWeek.Sunday); Assert.Equal(23, next.Hour); Assert.Equal(57, next.Minute); Assert.Equal(1, next.Second); }
public void ExtensionPattern_02() { PatternFactory.AddExtensionPattern( "foo", str => { Assert.Equal("howdy-world:foo", str); return(new ExtPattern(str)); }); var pattern = PatternFactory.Create("ext:foo:howdy-world:foo"); var next = pattern.Next(); Assert.Equal(next, new DateTime(2030, 11, 11, 11, 11, 11)); Assert.Equal("ext:foo:howdy-world:foo", pattern.Value); }
public void EveryJanuaryAndJuly() { var pattern = PatternFactory.Create("01|07.01.00.00.00"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); if (DateTime.UtcNow.Month >= 1 && DateTime.UtcNow.Month <= 7) { Assert.Equal(7, next.Month); } else { Assert.Equal(1, next.Month); } Assert.Equal(00, next.Hour); Assert.Equal(00, next.Minute); Assert.Equal(00, next.Second); }
public void Every5thAnd15thOfMonth() { var pattern = PatternFactory.Create("**.05|15.23.59.59"); var next = pattern.Next(); Assert.True(next >= DateTime.UtcNow); if (DateTime.UtcNow.Day >= 5 && DateTime.UtcNow.Day <= 16) { Assert.Equal(15, next.Day); } else { Assert.Equal(5, next.Day); } Assert.Equal(23, next.Hour); Assert.Equal(59, next.Minute); Assert.Equal(59, next.Second); }
private static void PrintPatterns(string patternTypeName) { var patterns = Assembly.GetExecutingAssembly().GetTypes().Where(r => r.BaseType == typeof(Pattern)); var patternClasses = patterns.Select(r => PatternFactory.Create(r.Name)).ToArray(); // Get pattern type if patternTypeName is specified. Otherwise, get all the types var patternTypes = patternClasses .Where(r => patternTypeName == null || string.Equals(r.PatternType.GetType().Name, patternTypeName.RemoveWhiteSpace(), StringComparison.CurrentCultureIgnoreCase)) .Select(r => r.PatternType) .GroupBy(x => x.PatternType) .Select(g => g.First()); foreach (var patternType in patternTypes) { Console.WriteLine($@"{patternType.PatternType}:"); patternClasses.Where(r => r.PatternType.PatternType == patternType.PatternType) .ToList() .ForEach(r => Console.WriteLine($@" {r.PatternName}")); Console.WriteLine(); } }
public void InvalidRepetitionPattern_02() { Assert.Throws <FormatException>(() => PatternFactory.Create("MM.dd.HH.mm.ss")); }
public void WeekdaysPatternToString_02() { var pattern = PatternFactory.Create("sunday|Monday.23.59.14"); Assert.Equal("Sunday|Monday.23.59.14", pattern.Value); }
public void MonthPatternToString_02() { var pattern = PatternFactory.Create("**.**.00.00.00"); Assert.Equal("**.**.00.00.00", pattern.Value); }
public void WeekdaysPatternToString_01() { var pattern = PatternFactory.Create("Monday.00.00.00"); Assert.Equal("Monday.00.00.00", pattern.Value); }
public void InvalidRepetitionPattern_03() { Assert.Throws <FormatException>(() => PatternFactory.Create("**.**.**.**.ss")); }
public void InvalidRepetitionPattern_08() { Assert.Throws <ArgumentException>(() => PatternFactory.Create("5.years")); }
public void InvalidRepetitionPattern_07() { Assert.Throws <FormatException>(() => PatternFactory.Create("Monday.01.01.**")); }
public void InvalidRepetitionPattern_05() { Assert.Throws <ArgumentException>(() => PatternFactory.Create("01.**.**.**.**.Monday")); }
public void InvalidRepetitionPattern_04() { Assert.Throws <ArgumentException>(() => PatternFactory.Create("Monday|Wrongday.01.01.01")); }