11package org .jenkinsci .plugins .parameterizedscheduler ;
22
3+ import static org .hamcrest .MatcherAssert .assertThat ;
4+ import static org .hamcrest .Matchers .empty ;
5+ import static org .hamcrest .Matchers .is ;
36import static org .junit .Assert .assertEquals ;
4- import static org .junit .Assert .assertNotNull ;
57import static org .junit .Assert .assertNull ;
68import static org .junit .Assert .assertSame ;
79import static org .junit .Assert .assertTrue ;
810
911import java .util .Arrays ;
1012import java .util .Collections ;
1113import java .util .GregorianCalendar ;
14+ import java .util .List ;
1215import java .util .Map ;
1316
1417import antlr .ANTLRException ;
@@ -29,44 +32,59 @@ public class ParameterizedCronTabListTest {
2932 public void create () throws Exception {
3033 ParameterizedCronTabList testObject = ParameterizedCronTabList .create ("* * * * *%foo=bar" );
3134 assertTrue (testObject .checkSanity (), testObject .checkSanity ().startsWith ("Do you really mean \" every minute\" " ));
32- ParameterizedCronTab actualCronTab = testObject .check (new GregorianCalendar ());
33- assertNotNull (actualCronTab );
35+ List <ParameterizedCronTab > actualCronTabs = testObject .check (new GregorianCalendar ());
36+ assertThat (actualCronTabs .size (), is (1 ));
37+ assertEquals (Collections .singletonMap ("foo" , "bar" ), actualCronTabs .get (0 ).getParameterValues ());
38+ }
3439
35- assertEquals (Collections .singletonMap ("foo" , "bar" ), actualCronTab .getParameterValues ());
40+ @ Test
41+ public void createMultiple () throws Exception {
42+ ParameterizedCronTabList testObject = ParameterizedCronTabList .create ("* * * * *%foo=bar\n */1 * * * *%bar=bar" );
43+ assertTrue (testObject .checkSanity (), testObject .checkSanity ().startsWith ("Do you really mean \" every minute\" " ));
44+ List <ParameterizedCronTab > actualCronTabs = testObject .check (new GregorianCalendar ());
45+ assertThat (actualCronTabs .size (), is (2 ));
46+ assertEquals (Collections .singletonMap ("foo" , "bar" ), actualCronTabs .get (0 ).getParameterValues ());
47+ assertEquals (Collections .singletonMap ("bar" , "bar" ), actualCronTabs .get (1 ).getParameterValues ());
3648 }
3749
3850 @ Test
3951 public void check_Delegates_ReturnsNull () {
4052 ParameterizedCronTabList testObject = new ParameterizedCronTabList (Arrays .asList (mockParameterizedCronTab ,
4153 mockParameterizedCronTabToo ));
4254 GregorianCalendar testCalendar = new GregorianCalendar ();
43-
44- assertNull ( testObject . check ( testCalendar ));
55+ List < ParameterizedCronTab > tabList = testObject . check ( testCalendar );
56+ assertThat ( tabList , is ( empty () ));
4557
4658 Mockito .verify (mockParameterizedCronTab ).check (testCalendar );
4759 Mockito .verify (mockParameterizedCronTabToo ).check (testCalendar );
4860 }
4961
5062 @ Test
51- public void check_Delegates_ReturnsSame_EarlyExit () {
63+ public void check_Delegates_ReturnsSame () {
5264 ParameterizedCronTabList testObject = new ParameterizedCronTabList (Arrays .asList (mockParameterizedCronTab ,
5365 mockParameterizedCronTabToo ));
5466 GregorianCalendar testCalendar = new GregorianCalendar ();
5567
5668 Mockito .when (mockParameterizedCronTab .check (testCalendar )).thenReturn (true );
57- assertSame (mockParameterizedCronTab , testObject .check (testCalendar ));
58-
59- Mockito .verifyNoInteractions (mockParameterizedCronTabToo );
69+ Mockito .when (mockParameterizedCronTabToo .check (testCalendar )).thenReturn (false );
70+ List <ParameterizedCronTab > tabList = testObject .check (testCalendar );
71+ assertThat (tabList .size (), is (1 ));
72+ assertSame (mockParameterizedCronTab , tabList .get (0 ));
6073 }
6174
6275 @ Test
63- public void check_Delegates_ReturnsSame () {
76+ public void check_Delegates_ReturnsBoth () {
6477 ParameterizedCronTabList testObject = new ParameterizedCronTabList (Arrays .asList (mockParameterizedCronTab ,
6578 mockParameterizedCronTabToo ));
6679 GregorianCalendar testCalendar = new GregorianCalendar ();
6780
81+ Mockito .when (mockParameterizedCronTab .check (testCalendar )).thenReturn (true );
6882 Mockito .when (mockParameterizedCronTabToo .check (testCalendar )).thenReturn (true );
69- assertSame (mockParameterizedCronTabToo , testObject .check (testCalendar ));
83+ List <ParameterizedCronTab > tabList = testObject .check (testCalendar );
84+ assertThat (tabList .size (), is (2 ));
85+
86+ assertSame (mockParameterizedCronTab , tabList .get (0 ));
87+ assertSame (mockParameterizedCronTabToo , tabList .get (1 ));
7088 }
7189
7290 @ Test
@@ -106,11 +124,11 @@ public void checkSanity_Delegates_ReturnsSame() {
106124 public void create_with_timezone () throws Exception {
107125 ParameterizedCronTabList testObject = ParameterizedCronTabList .create ("TZ=Australia/Sydney \n * * * * *%foo=bar" );
108126 assertTrue (testObject .checkSanity (), testObject .checkSanity ().startsWith ("Do you really mean \" every minute\" " ));
109- ParameterizedCronTab actualCronTab = testObject .check (new GregorianCalendar ());
110- assertNotNull ( actualCronTab );
127+ List < ParameterizedCronTab > actualCronTabs = testObject .check (new GregorianCalendar ());
128+ assertThat ( actualCronTabs . size (), is ( 1 ) );
111129
112130 Map <String , String > expected = Collections .singletonMap ("foo" , "bar" );
113- assertEquals (expected , actualCronTab .getParameterValues ());
131+ assertEquals (expected , actualCronTabs . get ( 0 ) .getParameterValues ());
114132 }
115133
116134 @ Test (expected = ANTLRException .class )
0 commit comments