@@ -19,24 +19,66 @@ public class WatcherScheduleCoordinatedTests : CoordinatedIntegrationTestBase<Wa
1919 private const string CreateCronExpressionScheduleWatcher = nameof ( CreateCronExpressionScheduleWatcher ) ;
2020 private const string CreateCronExpressionsScheduleWatcher = nameof ( CreateCronExpressionsScheduleWatcher ) ;
2121 private const string CreateDailyScheduleWatcher = nameof ( CreateDailyScheduleWatcher ) ;
22+ private const string CreateHourlyScheduleWatcher = nameof ( CreateHourlyScheduleWatcher ) ;
2223 private const string CreateMonthlyScheduleWatcher = nameof ( CreateMonthlyScheduleWatcher ) ;
2324 private const string CreateWeeklyScheduleWatcher = nameof ( CreateWeeklyScheduleWatcher ) ;
2425 private const string CreateYearlyScheduleWatcher = nameof ( CreateYearlyScheduleWatcher ) ;
2526 private const string DeleteCronExpressionScheduleWatcher = nameof ( DeleteCronExpressionScheduleWatcher ) ;
2627 private const string DeleteCronExpressionsScheduleWatcher = nameof ( DeleteCronExpressionsScheduleWatcher ) ;
2728 private const string DeleteDailyScheduleWatcher = nameof ( DeleteDailyScheduleWatcher ) ;
29+ private const string DeleteHourlyScheduleWatcher = nameof ( DeleteHourlyScheduleWatcher ) ;
2830 private const string DeleteMonthlyScheduleWatcher = nameof ( DeleteMonthlyScheduleWatcher ) ;
2931 private const string DeleteWeeklyScheduleWatcher = nameof ( DeleteWeeklyScheduleWatcher ) ;
3032 private const string DeleteYearlyScheduleWatcher = nameof ( DeleteYearlyScheduleWatcher ) ;
3133 private const string GetCronExpressionScheduleWatcher = nameof ( GetCronExpressionScheduleWatcher ) ;
3234 private const string GetCronExpressionsScheduleWatcher = nameof ( GetCronExpressionsScheduleWatcher ) ;
3335 private const string GetDailyScheduleWatcher = nameof ( GetDailyScheduleWatcher ) ;
36+ private const string GetHourlyScheduleWatcher = nameof ( GetHourlyScheduleWatcher ) ;
3437 private const string GetMonthlyScheduleWatcher = nameof ( GetMonthlyScheduleWatcher ) ;
3538 private const string GetWeeklyScheduleWatcher = nameof ( GetWeeklyScheduleWatcher ) ;
3639 private const string GetYearlyScheduleWatcher = nameof ( GetYearlyScheduleWatcher ) ;
3740
3841 public WatcherScheduleCoordinatedTests ( WatcherCluster cluster , EndpointUsage usage ) : base ( new CoordinatedUsage ( cluster , usage )
3942 {
43+ {
44+ CreateHourlyScheduleWatcher , u =>
45+ u . Calls < PutWatchDescriptor , PutWatchRequest , IPutWatchRequest , PutWatchResponse > (
46+ v => new PutWatchRequest ( $ "hourly-{ v } ")
47+ {
48+ Trigger = new ScheduleContainer
49+ {
50+ Hourly = new HourlySchedule { Minute = new [ ] { 0 , 30 } }
51+ }
52+ } ,
53+ ( v , d ) => d . Trigger ( t => t . Schedule ( s => s . Hourly ( h => h . Minute ( 0 , 30 ) ) ) ) ,
54+ ( v , c , f ) => c . Watcher . Put ( $ "hourly-{ v } ", f ) ,
55+ ( v , c , f ) => c . Watcher . PutAsync ( $ "hourly-{ v } ", f ) ,
56+ ( v , c , r ) => c . Watcher . Put ( r ) ,
57+ ( v , c , r ) => c . Watcher . PutAsync ( r )
58+ )
59+ } ,
60+ {
61+ GetHourlyScheduleWatcher , u =>
62+ u . Calls < GetWatchDescriptor , GetWatchRequest , IGetWatchRequest , GetWatchResponse > (
63+ v => new GetWatchRequest ( $ "hourly-{ v } ") ,
64+ ( v , d ) => d ,
65+ ( v , c , f ) => c . Watcher . Get ( $ "hourly-{ v } ", f ) ,
66+ ( v , c , f ) => c . Watcher . GetAsync ( $ "hourly-{ v } ", f ) ,
67+ ( v , c , r ) => c . Watcher . Get ( r ) ,
68+ ( v , c , r ) => c . Watcher . GetAsync ( r )
69+ )
70+ } ,
71+ {
72+ DeleteHourlyScheduleWatcher , u =>
73+ u . Calls < DeleteWatchDescriptor , DeleteWatchRequest , IDeleteWatchRequest , DeleteWatchResponse > (
74+ v => new DeleteWatchRequest ( $ "hourly-{ v } ") ,
75+ ( v , d ) => d ,
76+ ( v , c , f ) => c . Watcher . Delete ( $ "hourly-{ v } ", f ) ,
77+ ( v , c , f ) => c . Watcher . DeleteAsync ( $ "hourly-{ v } ", f ) ,
78+ ( v , c , r ) => c . Watcher . Delete ( r ) ,
79+ ( v , c , r ) => c . Watcher . DeleteAsync ( r )
80+ )
81+ } ,
4082 {
4183 CreateDailyScheduleWatcher , u =>
4284 u . Calls < PutWatchDescriptor , PutWatchRequest , IPutWatchRequest , PutWatchResponse > (
@@ -289,6 +331,20 @@ public WatcherScheduleCoordinatedTests(WatcherCluster cluster, EndpointUsage usa
289331 } ,
290332 } ) { }
291333
334+ [ I ] public async Task GetHourlyScheduleWatcherResponse ( ) => await Assert < GetWatchResponse > ( GetHourlyScheduleWatcher , ( v , r ) =>
335+ {
336+ r . ShouldBeValid ( ) ;
337+ r . Id . Should ( ) . Be ( $ "hourly-{ v } ") ;
338+ r . Found . Should ( ) . BeTrue ( ) ;
339+
340+ var container = r . Watch . Trigger . Should ( )
341+ . BeAssignableTo < ITriggerContainer > ( ) . Subject ;
342+
343+ container . Schedule . Hourly . Minute . Should ( ) . HaveCount ( 2 ) ;
344+ container . Schedule . Hourly . Minute . First ( ) . Should ( ) . Be ( 0 ) ;
345+ container . Schedule . Hourly . Minute . Last ( ) . Should ( ) . Be ( 30 ) ;
346+ } ) ;
347+
292348 [ I ] public async Task GetDailyScheduleWatcherResponse ( ) => await Assert < GetWatchResponse > ( GetDailyScheduleWatcher , ( v , r ) =>
293349 {
294350 r . ShouldBeValid ( ) ;
0 commit comments