@@ -123,25 +123,27 @@ int[] CreateArrayOfDays(int year, int month)
123123 "10:15am 1-6th of mon and every Mon,Thu,Fri October 2010" ) ]
124124 [ TestCase ( "0 15 10 * * MON,THU,FRI 2010" ,
125125 new [ ] { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 } ,
126- "10:15am EveryDay of Month October 2010, Wildcard specified " ) ]
126+ "10:15am EveryDay of Month October 2010, Wildcard day-of-month means all days " ) ]
127127 [ TestCase ( "0 15 10 1 * * 2010" , new [ ] { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 } ,
128- "10:15am Every Day of Month October 2010, Wildcard specified " ) ]
128+ "10:15am Every Day of Month October 2010, Wildcard day-of-week means all days " ) ]
129129 public void CanUse_DayOfMonth_And_DayOfWeek_Together ( string cronExpression , int [ ] expectedDays , string scenario = "" )
130130 {
131- var expr = new CronExpression ( cronExpression ) ;
132- var templateDate = new DateTime ( 2010 , 10 , 1 , 10 , 15 , 0 ) . ToUniversalTime ( ) ;
131+ var expr = new CronExpression ( cronExpression ) { TimeZone = TimeZoneInfo . Utc } ;
132+ // Use UTC directly to avoid DST conversion issues
133+ const int hour = 10 ;
134+ const int minute = 15 ;
133135
134136 foreach ( var day in expectedDays )
135137 {
136- var date = new DateTime ( templateDate . Year , templateDate . Month , day , templateDate . Hour , templateDate . Minute , templateDate . Second , templateDate . Kind ) ;
138+ var date = new DateTime ( 2010 , 10 , day , hour , minute , 0 , DateTimeKind . Utc ) ;
137139 Assert . That ( expr . IsSatisfiedBy ( date ) , Is . True , $ "expected day of { day } , { scenario } ") ;
138140 }
139141
140142 IEnumerable < int > invalidDays = CreateArrayOfDays ( 2010 , 10 ) . Except ( expectedDays ) ;
141143
142144 foreach ( var day in invalidDays )
143145 {
144- var date = new DateTime ( templateDate . Year , templateDate . Month , day , templateDate . Hour , templateDate . Minute , templateDate . Second , templateDate . Kind ) ;
146+ var date = new DateTime ( 2010 , 10 , day , hour , minute , 0 , DateTimeKind . Utc ) ;
145147 Assert . That ( expr . IsSatisfiedBy ( date ) , Is . False , $ "invalid day of { day } , { scenario } ") ;
146148 }
147149 }
@@ -837,21 +839,20 @@ public void CanGetExpressionSummary()
837839 {
838840 var expression = new CronExpression ( "0 15 15 5 11 ?" ) ;
839841 var sut = expression . GetExpressionSummary ( ) ;
840- Assert . That ( sut , Is . EqualTo (
841- @"seconds: 0
842- minutes: 15
843- hours: 15
844- daysOfMonth: 5
845- months: 11
846- daysOfWeek: ?
847- lastdayOfWeek: False
848- nearestWeekday: False
849- NthDayOfWeek: 0
850- lastdayOfMonth: False
851- calendardayOfWeek: False
852- calendardayOfMonth: False
853- years: *
854- " ) ) ;
842+ var expected = "seconds: 0\n " +
843+ "minutes: 15\n " +
844+ "hours: 15\n " +
845+ "daysOfMonth: 5\n " +
846+ "months: 11\n " +
847+ "daysOfWeek: ?\n " +
848+ "lastdayOfWeek: False\n " +
849+ "nearestWeekday: False\n " +
850+ "NthDayOfWeek: 0\n " +
851+ "lastdayOfMonth: False\n " +
852+ "calendardayOfWeek: False\n " +
853+ "calendardayOfMonth: False\n " +
854+ "years: *\n " ;
855+ Assert . That ( sut , Is . EqualTo ( expected ) ) ;
855856 }
856857
857858 [ TestCase ( "OCT" , 10 ) ]
0 commit comments