Skip to content

Commit

Permalink
Merge pull request #87 from daniel-beck/JENKINS-18534
Browse files Browse the repository at this point in the history
[FIXED JENKINS-18534] equals()/hashCode() for parameter value
  • Loading branch information
oleg-nenashev committed Jul 2, 2014
2 parents 2a16745 + 8a96c32 commit 7fecc42
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 0 deletions.
Expand Up @@ -64,6 +64,28 @@ public String resolve(String name) {
};
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof ListSubversionTagsParameterValue)) return false;
if (!super.equals(o)) return false;

ListSubversionTagsParameterValue that = (ListSubversionTagsParameterValue) o;

if (tag != null ? !tag.equals(that.tag) : that.tag != null) return false;
if (tagsDir != null ? !tagsDir.equals(that.tagsDir) : that.tagsDir != null) return false;

return true;
}

@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (tagsDir != null ? tagsDir.hashCode() : 0);
result = 31 * result + (tag != null ? tag.hashCode() : 0);
return result;
}

public String getTag() {
return tag;
}
Expand Down
@@ -0,0 +1,78 @@
package hudson.scm.listtagsparameter;

import org.junit.Test;
import org.jvnet.hudson.test.Bug;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

/**
* Created by schristou88 on 6/24/14.
*/
public class ListSubversionTagsParameterValueTest {
String expectedName = "name";
String expectedTag = "tag";
String expectedTagsDir = "/tmp";
/**
* Since we are overriding the equals method, we should write a test unit.
*/
@Test
@Bug(18534)

This comment has been minimized.

This comment has been minimized.

Copy link
@jglick

jglick Sep 1, 2014

Member

@Issue is only available with newer core dependencies. (Not sure if this plugin already has one new enough.)

public void testEquality() {
ListSubversionTagsParameterValue parameterValue = new ListSubversionTagsParameterValue(expectedName,
expectedTag,
expectedTagsDir);

assertEquals(parameterValue, parameterValue);

// When name is different
ListSubversionTagsParameterValue otherParameterValue = new ListSubversionTagsParameterValue("different",
expectedTag,
expectedTagsDir);
assertNotEquals("Two parameter values should NOT be equal if the only difference is the name.",
parameterValue,
otherParameterValue);

// When tag is different
otherParameterValue = new ListSubversionTagsParameterValue(expectedName,
"tag2",
expectedTagsDir);
assertNotEquals("Two parameter values should NOT be equal if the difference is the tag.",
parameterValue,
otherParameterValue);

// When tagsdir is different
otherParameterValue = new ListSubversionTagsParameterValue(expectedName,
expectedTag,
"/tmp1");
assertNotEquals("Two parameter values should NOT be equal if the difference is the tagsDir.",
parameterValue,
otherParameterValue);

otherParameterValue = new ListSubversionTagsParameterValue(expectedName,
expectedTag,
expectedTagsDir);
assertEquals("Two parameters with the same value should also be equal.",
parameterValue,
otherParameterValue);
}

/**
* Since we are overriding the hashcode method, we should write a test unit.
*/
@Test
@Bug(18534)
public void testHashCode() {
ListSubversionTagsParameterValue parameterValue = new ListSubversionTagsParameterValue(expectedName,
expectedTag,
expectedTagsDir);

assertEquals(parameterValue.hashCode(), parameterValue.hashCode());

ListSubversionTagsParameterValue otherParameterValue = new ListSubversionTagsParameterValue(expectedName,
expectedTag,
expectedTagsDir);

assertEquals(parameterValue.hashCode(), otherParameterValue.hashCode());
}
}

0 comments on commit 7fecc42

Please sign in to comment.