Skip to content

Commit 04131f9

Browse files
authored
Merge pull request #80 from jenkinsci/code-improvements
chore: improve tests and correct equals / hashcode
2 parents 76b530b + 541cd76 commit 04131f9

3 files changed

Lines changed: 53 additions & 17 deletions

File tree

src/main/java/hudson/plugins/validating_string_parameter/ValidatingStringParameterValue.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
*/
2424
package hudson.plugins.validating_string_parameter;
2525

26+
import com.google.common.base.Objects;
2627
import hudson.AbortException;
2728
import hudson.Launcher;
2829
import hudson.model.AbstractBuild;
@@ -61,10 +62,6 @@ public void setRegex(String regex) {
6162
this.regex = regex;
6263
}
6364

64-
public String getValue() {
65-
return value;
66-
}
67-
6865
@Override
6966
public BuildWrapper createBuildWrapper(AbstractBuild<?, ?> build) {
7067
if (regex != null && !Pattern.matches(regex, value)) {
@@ -82,10 +79,7 @@ public Environment setUp(AbstractBuild build, Launcher launcher, BuildListener l
8279

8380
@Override
8481
public int hashCode() {
85-
final int prime = 71;
86-
int result = super.hashCode();
87-
result = prime * result;
88-
return result;
82+
return Objects.hashCode(super.hashCode(), regex);
8983
}
9084

9185
@Override
@@ -100,10 +94,10 @@ public boolean equals(Object obj) {
10094
return false;
10195
}
10296
ValidatingStringParameterValue other = (ValidatingStringParameterValue) obj;
103-
if (value == null) {
104-
return other.value == null;
97+
if (regex == null) {
98+
return other.regex == null;
10599
} else {
106-
return value.equals(other.value);
100+
return regex.equals(other.regex);
107101
}
108102
}
109103

src/test/java/hudson/plugins/validating_string_parameter/ValidatingStringParameterDefinitionTest.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import hudson.AbortException;
44
import hudson.cli.CLICommand;
55
import hudson.model.Failure;
6+
import hudson.util.FormValidation;
67
import net.sf.json.JSONObject;
78
import org.junit.Test;
89
import org.junit.runner.RunWith;
@@ -33,11 +34,12 @@ public void simpleConfiguration() throws Exception {
3334
assertEquals("Your parameter does not match the regular expression!", d.getFailedValidationMessage());
3435
assertEquals("Some parameter", d.getDescription());
3536
Mockito.when(req.getParameterValues("DUMMY")).thenReturn(new String[]{"test"});
36-
assertEquals(new ValidatingStringParameterValue("DUMMY", "test"), d.createValue(req));
37+
ValidatingStringParameterValue v1 = new ValidatingStringParameterValue("DUMMY", "test", ".+", "");
38+
assertEquals(v1, d.createValue(req));
3739
JSONObject jo = new JSONObject();
38-
ValidatingStringParameterValue v = new ValidatingStringParameterValue("DUMMY", "test2");
39-
Mockito.when(req.bindJSON(ValidatingStringParameterValue.class, jo)).thenReturn(v);
40-
assertEquals(v, d.createValue(req, jo));
40+
ValidatingStringParameterValue v2 = new ValidatingStringParameterValue("DUMMY", "test2");
41+
Mockito.when(req.bindJSON(ValidatingStringParameterValue.class, jo)).thenReturn(v2);
42+
assertEquals(v2, d.createValue(req, jo));
4143
}
4244

4345
@Test(expected = Failure.class)
@@ -61,7 +63,9 @@ public void cliCommand() throws IOException, InterruptedException {
6163
ValidatingStringParameterDefinition d = new ValidatingStringParameterDefinition("DUMMY", "foo", "\".+", "Your parameter does not match the regular expression!", "Some parameter");
6264
assertEquals(d.getDefaultParameterValue(),d.createValue(cliCommand, null));
6365
Mockito.verifyNoInteractions(cliCommand);
64-
assertEquals(new ValidatingStringParameterValue("DUMMY", "\"hello"), d.createValue(cliCommand, "\"hello"));
66+
ValidatingStringParameterValue v = new ValidatingStringParameterValue("DUMMY", "\"hello");
67+
v.setRegex("\".+");
68+
assertEquals(v, d.createValue(cliCommand, "\"hello"));
6569
Mockito.verifyNoInteractions(cliCommand);
6670
}
6771

@@ -71,4 +75,18 @@ public void cliCommandFailure() throws IOException, InterruptedException {
7175
d.createValue(cliCommand, "hello");
7276
Mockito.verifyNoInteractions(cliCommand);
7377
}
78+
79+
@Test
80+
public void regexCheck() {
81+
ValidatingStringParameterDefinition.DescriptorImpl d = new ValidatingStringParameterDefinition.DescriptorImpl();
82+
assertEquals(FormValidation.Kind.OK, d.doCheckRegex("abc").kind);
83+
assertEquals(FormValidation.Kind.ERROR, d.doCheckRegex("(dddd").kind);
84+
}
85+
86+
@Test
87+
public void validationCheck() {
88+
ValidatingStringParameterDefinition.DescriptorImpl d = new ValidatingStringParameterDefinition.DescriptorImpl();
89+
assertEquals(FormValidation.Kind.OK, d.doValidate("abc", "failed", "abc").kind);
90+
assertEquals(FormValidation.Kind.ERROR, d.doValidate("abc", "failed", "").kind);
91+
}
7492
}

src/test/java/hudson/plugins/validating_string_parameter/ValidatingStringParameterValueTest.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,40 @@
33
import org.junit.Test;
44

55
import static org.junit.Assert.assertEquals;
6+
import static org.junit.Assert.assertNotEquals;
7+
import static org.junit.Assert.assertNotNull;
8+
import static org.junit.Assert.assertNull;
69

710
public class ValidatingStringParameterValueTest {
811

912
@Test
1013
public void equals() {
1114
ValidatingStringParameterValue v = new ValidatingStringParameterValue("DUMMY", "VALUE");
1215
assertEquals(v, v);
13-
v.setRegex("lol");
1416
ValidatingStringParameterValue v2 = new ValidatingStringParameterValue("DUMMY", "VALUE");
1517
assertEquals(v2, v);
1618
assertEquals(v2.hashCode(), v.hashCode());
19+
v.setRegex("fake_regex");
20+
assertNotEquals(v2, v);
21+
assertNotEquals(v2.hashCode(), v.hashCode());
22+
v2.setRegex("fake_regex");
23+
assertEquals(v2, v);
24+
assertEquals(v2.hashCode(), v.hashCode());
25+
}
26+
27+
@Test
28+
public void regex() {
29+
ValidatingStringParameterValue v = new ValidatingStringParameterValue("DUMMY", "VALUE");
30+
String regex = "FAKE_REGEX";
31+
v.setRegex(regex);
32+
assertEquals(regex, v.getRegex());
33+
}
34+
35+
@Test
36+
public void buildWrapper() {
37+
ValidatingStringParameterValue v = new ValidatingStringParameterValue("DUMMY", "VALUE");
38+
assertNull(v.createBuildWrapper(null));
39+
v.setRegex("abc");
40+
assertNotNull(v.createBuildWrapper(null));
1741
}
1842
}

0 commit comments

Comments
 (0)