Skip to content

Commit 3a50ef5

Browse files
authored
Merge pull request #85 from jenkinsci/test-cleanup
Improve tests and general cleanup
2 parents 64d2a42 + dc37677 commit 3a50ef5

7 files changed

Lines changed: 48 additions & 69 deletions

File tree

src/main/java/org/jenkinsci/plugins/parameterizedscheduler/ParameterParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ public class ParameterParser {
2121
private static final String PAIR_SEPARATOR = ";";
2222

2323
/**
24-
*
24+
* Parses a string with key value pairs
2525
* @param nameValuePairFormattedString of name=value;other=value name value pairs
26-
* @return
26+
* @return Map of key-value pairs parsed from provided string
2727
*/
2828
public Map<String, String> parse(String nameValuePairFormattedString) {
2929
if (StringUtils.isBlank(nameValuePairFormattedString)) {

src/test/java/org/jenkinsci/plugins/parameterizedscheduler/ParameterParserTest.java

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
package org.jenkinsci.plugins.parameterizedscheduler;
22

3-
import static org.junit.Assert.assertEquals;
4-
import static org.junit.Assert.assertNotNull;
5-
import static org.junit.Assert.assertNull;
63
import hudson.model.ParametersDefinitionProperty;
4+
import org.junit.Test;
5+
import org.junit.runner.RunWith;
6+
import org.mockito.Mock;
7+
import org.mockito.Mockito;
8+
import org.mockito.junit.MockitoJUnitRunner;
79

810
import java.util.Arrays;
911
import java.util.Collections;
1012
import java.util.HashMap;
1113
import java.util.List;
1214

13-
import org.jenkinsci.plugins.parameterizedscheduler.Messages;
14-
import org.jenkinsci.plugins.parameterizedscheduler.ParameterParser;
15-
import org.junit.Test;
16-
import org.junit.runner.RunWith;
17-
import org.mockito.Mock;
18-
import org.mockito.Mockito;
19-
import org.mockito.runners.MockitoJUnitRunner;
15+
import static org.junit.Assert.assertEquals;
16+
import static org.junit.Assert.assertNull;
17+
import static org.junit.Assert.assertTrue;
2018

2119
@RunWith(MockitoJUnitRunner.class)
2220
public class ParameterParserTest {
@@ -27,30 +25,28 @@ public class ParameterParserTest {
2725
@Test
2826
public void test_nullReturns_emptyMap() {
2927
ParameterParser testObject = new ParameterParser();
30-
31-
assertEquals(new HashMap<String, String>(), testObject.parse(null));
28+
assertEquals(Collections.emptyMap(), testObject.parse(null));
3229
}
3330

3431
@Test
3532
public void test_EmptyStringReturns_emptyMap() {
3633
ParameterParser testObject = new ParameterParser();
3734

38-
assertEquals(new HashMap<String, String>(), testObject.parse(""));
39-
assertEquals(new HashMap<String, String>(), testObject.parse(" "));
35+
assertEquals(Collections.emptyMap(), testObject.parse(""));
36+
assertEquals(Collections.emptyMap(), testObject.parse(" "));
4037
}
4138

4239
@Test(expected = IllegalArgumentException.class)
4340
public void test_Malformed_NoEquals_StringReturns_emptyMap() {
4441
ParameterParser testObject = new ParameterParser();
45-
46-
assertEquals(new HashMap<String, String>(), testObject.parse("namevalue"));
42+
assertEquals(Collections.emptyMap(), testObject.parse("namevalue"));
4743
}
4844

4945
@Test(expected = IllegalArgumentException.class)
5046
public void test_Malformed_ExtraSemicolon_StringReturns_emptyMap() {
5147
ParameterParser testObject = new ParameterParser();
5248

53-
HashMap<String, String> expected = new HashMap<String, String>();
49+
HashMap<String, String> expected = new HashMap<>();
5450
expected.put("name", "value");
5551
assertEquals(expected, testObject.parse("name=value;;"));
5652
}
@@ -59,25 +55,22 @@ public void test_Malformed_ExtraSemicolon_StringReturns_emptyMap() {
5955
public void test_OneParamStringReturns_emptyMap() {
6056
ParameterParser testObject = new ParameterParser();
6157

62-
HashMap<String, String> expected = new HashMap<String, String>();
58+
HashMap<String, String> expected = new HashMap<>();
6359
expected.put("name", "value");
6460
assertEquals(expected, testObject.parse("name=value"));
6561
}
6662

6763
@Test(expected = IllegalArgumentException.class)
68-
public void test_TrimsSpacesStringReturns_emptyMap() {
64+
public void test_TrimsSpacesString() {
6965
ParameterParser testObject = new ParameterParser();
70-
71-
HashMap<String, String> expected = new HashMap<String, String>();
72-
expected.put("name", "value");
73-
testObject.parse(" name = value; ;;");
66+
assertEquals(Collections.singletonMap("name", "value"), testObject.parse(" name = value; ;;"));
7467
}
7568

7669
@Test
7770
public void test_TwoParamsStringReturns_emptyMap() {
7871
ParameterParser testObject = new ParameterParser();
7972

80-
HashMap<String, String> expected = new HashMap<String, String>();
73+
HashMap<String, String> expected = new HashMap<>();
8174
expected.put("name", "value");
8275
expected.put("name2", "value2");
8376
assertEquals(expected, testObject.parse("name2=value2;name=value"));
@@ -87,7 +80,7 @@ public void test_TwoParamsStringReturns_emptyMap() {
8780
public void test_TwoParamsStringWithSpaceReturns_emptyMap() {
8881
ParameterParser testObject = new ParameterParser();
8982

90-
HashMap<String, String> expected = new HashMap<String, String>();
83+
HashMap<String, String> expected = new HashMap<>();
9184
expected.put("name", "value");
9285
expected.put("name2", "value2");
9386
assertEquals(expected, testObject.parse("name2=value2; name=value"));
@@ -96,25 +89,22 @@ public void test_TwoParamsStringWithSpaceReturns_emptyMap() {
9689
@Test
9790
public void test_ValueContainsEquals_emptyMap() {
9891
ParameterParser testObject = new ParameterParser();
99-
100-
HashMap<String, String> expected = new HashMap<String, String>();
101-
expected.put("name", "value=contains=equals");
102-
assertEquals(expected, testObject.parse("name=value=contains=equals"));
92+
assertEquals(Collections.singletonMap("name", "value=contains=equals"), testObject.parse("name=value=contains=equals"));
10393
}
10494

10595
@Test
10696
public void checkSanity_HappyPath() throws Exception {
10797
ParameterParser testObject = new ParameterParser();
10898

109-
Mockito.when(mockParametersDefinitionProperty.getParameterDefinitionNames()).thenReturn(Arrays.asList("name"));
99+
Mockito.when(mockParametersDefinitionProperty.getParameterDefinitionNames()).thenReturn(Collections.singletonList("name"));
110100
assertNull(testObject.checkSanity("* * * * *%name=value", mockParametersDefinitionProperty));
111101
}
112102

113103
@Test
114104
public void checkSanity_NotDefined_ProjectParameter() throws Exception {
115105
ParameterParser testObject = new ParameterParser();
116106

117-
List<String> list = Arrays.asList("not name");
107+
List<String> list = Collections.singletonList("not name");
118108
Mockito.when(mockParametersDefinitionProperty.getParameterDefinitionNames()).thenReturn(list);
119109
assertEquals(Messages.ParameterizedTimerTrigger_UndefinedParameter("[name]", list.toString()),
120110
testObject.checkSanity("* * * * *%name=value", mockParametersDefinitionProperty));
@@ -148,14 +138,16 @@ public void checkSanity_NoParametersIsNoBigDeal() throws Exception {
148138
@Test
149139
public void checkSanity_duplicateParamName() throws Exception {
150140
ParameterParser testObject = new ParameterParser();
151-
152-
testObject.checkSanity("* * * * *%name=value;name=value2", mockParametersDefinitionProperty);
141+
assertTrue(testObject.checkSanity("* * * * *%name=value;name=value2", mockParametersDefinitionProperty).startsWith("Duplicate key"));
153142
}
154143

155144
@Test
156145
public void checkSanity_UnmatchedEquals() throws Exception {
157146
ParameterParser testObject = new ParameterParser();
158-
testObject.checkSanity("* * * * *%name=value;name2=", mockParametersDefinitionProperty);
147+
Mockito.when(mockParametersDefinitionProperty.getParameterDefinitionNames()).thenReturn(
148+
Arrays.asList("name", "name2"));
149+
// TODO: Warn on missing value
150+
assertNull(testObject.checkSanity("* * * * *%name=value;name2=", mockParametersDefinitionProperty));
159151
}
160152

161153
@Test

src/test/java/org/jenkinsci/plugins/parameterizedscheduler/ParameterizedCronTabListTest.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
import static org.junit.Assert.assertTrue;
88

99
import java.util.Arrays;
10+
import java.util.Collections;
1011
import java.util.GregorianCalendar;
12+
import java.util.HashMap;
1113
import java.util.Map;
1214

1315
import org.junit.Test;
1416
import org.junit.runner.RunWith;
1517
import org.mockito.Mock;
1618
import org.mockito.Mockito;
17-
import org.mockito.runners.MockitoJUnitRunner;
18-
19-
import com.google.common.collect.Maps;
19+
import org.mockito.junit.MockitoJUnitRunner;
2020

2121
@RunWith(MockitoJUnitRunner.class)
2222
public class ParameterizedCronTabListTest {
@@ -32,9 +32,7 @@ public void create() throws Exception {
3232
ParameterizedCronTab actualCronTab = testObject.check(new GregorianCalendar());
3333
assertNotNull(actualCronTab);
3434

35-
Map<String, String> expected = Maps.newHashMap();
36-
expected.put("foo", "bar");
37-
assertEquals(expected, actualCronTab.getParameterValues());
35+
assertEquals(Collections.singletonMap("foo", "bar"), actualCronTab.getParameterValues());
3836
}
3937

4038
@Test
@@ -58,7 +56,7 @@ public void check_Delegates_ReturnsSame_EarlyExit() {
5856
Mockito.when(mockParameterizedCronTab.check(testCalendar)).thenReturn(true);
5957
assertSame(mockParameterizedCronTab, testObject.check(testCalendar));
6058

61-
Mockito.verifyZeroInteractions(mockParameterizedCronTabToo);
59+
Mockito.verifyNoInteractions(mockParameterizedCronTabToo);
6260
}
6361

6462
@Test
@@ -69,7 +67,6 @@ public void check_Delegates_ReturnsSame() {
6967

7068
Mockito.when(mockParameterizedCronTabToo.check(testCalendar)).thenReturn(true);
7169
assertSame(mockParameterizedCronTabToo, testObject.check(testCalendar));
72-
7370
}
7471

7572
@Test
@@ -92,7 +89,7 @@ public void checkSanity_Delegates_ReturnsSame_EarlyExit() {
9289
Mockito.when(mockParameterizedCronTab.checkSanity()).thenReturn(sanityValue);
9390
assertSame(sanityValue, testObject.checkSanity());
9491

95-
Mockito.verifyZeroInteractions(mockParameterizedCronTabToo);
92+
Mockito.verifyNoInteractions(mockParameterizedCronTabToo);
9693
}
9794

9895
@Test
@@ -103,7 +100,6 @@ public void checkSanity_Delegates_ReturnsSame() {
103100
String sanityValue = "foo";
104101
Mockito.when(mockParameterizedCronTabToo.checkSanity()).thenReturn(sanityValue);
105102
assertSame(sanityValue, testObject.checkSanity());
106-
107103
}
108104

109105
}

src/test/java/org/jenkinsci/plugins/parameterizedscheduler/ParameterizedCronTabTest.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
package org.jenkinsci.plugins.parameterizedscheduler;
22

3-
import static org.junit.Assert.assertEquals;
4-
import static org.junit.Assert.assertTrue;
53
import hudson.scheduler.CronTab;
4+
import org.junit.Test;
5+
import org.jvnet.localizer.LocaleProvider;
66

77
import java.util.GregorianCalendar;
8+
import java.util.HashMap;
89
import java.util.Locale;
910
import java.util.Map;
1011

11-
import org.jenkinsci.plugins.parameterizedscheduler.ParameterizedCronTab;
12-
import org.junit.Test;
13-
import org.jvnet.localizer.LocaleProvider;
14-
15-
import com.google.common.collect.Maps;
12+
import static org.junit.Assert.assertEquals;
13+
import static org.junit.Assert.assertTrue;
1614

1715
public class ParameterizedCronTabTest {
1816

@@ -30,15 +28,14 @@ public Locale get()
3028

3129
@Test
3230
public void ctor_happyPath() throws Exception {
33-
Map<String, String> parameters = Maps.newHashMap();
31+
Map<String, String> parameters = new HashMap<>();
3432
parameters.put("one", "onevalue");
3533
CronTab testCronTab = new CronTab("* * * * *");
3634
ParameterizedCronTab testObject = new ParameterizedCronTab(testCronTab, parameters);
3735

3836
assertEquals(parameters, testObject.getParameterValues());
3937
assertTrue(testObject.check(new GregorianCalendar()));
4038
assertTrue(testObject.checkSanity().startsWith("Do you really mean"));
41-
4239
}
4340

4441
}

src/test/java/org/jenkinsci/plugins/parameterizedscheduler/ParameterizedStaplerRequestTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package org.jenkinsci.plugins.parameterizedscheduler;
22

3+
import org.junit.Test;
4+
35
import static org.junit.Assert.assertArrayEquals;
46
import static org.junit.Assert.assertSame;
57

6-
import org.jenkinsci.plugins.parameterizedscheduler.ParameterizedStaplerRequest;
7-
import org.junit.Test;
8-
98
public class ParameterizedStaplerRequestTest {
109

1110
@Test

src/test/java/org/jenkinsci/plugins/parameterizedscheduler/ParameterizedTimerTriggerCauseTest.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
package org.jenkinsci.plugins.parameterizedscheduler;
22

3-
import static org.junit.Assert.assertEquals;
3+
import org.junit.Test;
44

5+
import java.util.HashMap;
56
import java.util.Map;
67

7-
import org.jenkinsci.plugins.parameterizedscheduler.Messages;
8-
import org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTriggerCause;
9-
import org.junit.Test;
10-
11-
import com.google.common.collect.Maps;
8+
import static org.junit.Assert.assertEquals;
129

1310
public class ParameterizedTimerTriggerCauseTest {
1411

1512
@Test
1613
public void happyPath() {
17-
Map<String, String> parameters = Maps.newHashMap();
14+
Map<String, String> parameters = new HashMap<>();
1815
parameters.put("o", "v");
1916
ParameterizedTimerTriggerCause testObject = new ParameterizedTimerTriggerCause(parameters);
2017

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package org.jenkinsci.plugins.parameterizedscheduler;
22

3-
import static org.junit.Assert.assertSame;
4-
5-
import org.jenkinsci.plugins.parameterizedscheduler.ParameterizedTimerTrigger;
63
import org.junit.Test;
74

5+
import static org.junit.Assert.assertSame;
6+
87
public class ParameterizedTimerTriggerTest {
98

109
@Test
@@ -13,6 +12,5 @@ public void ctor() throws Exception {
1312
ParameterizedTimerTrigger testObject = new ParameterizedTimerTrigger(parameterizedSpecification);
1413

1514
assertSame(parameterizedSpecification, testObject.getParameterizedSpecification());
16-
1715
}
1816
}

0 commit comments

Comments
 (0)