Skip to content

Commit

Permalink
SONAR-6620 Metric's equals/hashcode should use only the key
Browse files Browse the repository at this point in the history
  • Loading branch information
sns-seb committed Jun 11, 2015
1 parent ccc92bf commit 97a4b69
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
Expand Up @@ -62,13 +62,12 @@ public boolean equals(@Nullable Object o) {
return false;
}
MetricImpl metric = (MetricImpl) o;
return Objects.equals(key, metric.key) &&
Objects.equals(type, metric.type);
return Objects.equals(key, metric.key);
}

@Override
public int hashCode() {
return Objects.hash(key, type);
return key.hashCode();
}

@Override
Expand Down
Expand Up @@ -53,24 +53,20 @@ public void verify_getters() {
}

@Test
public void equals_uses_key_and_name() {
public void equals_uses_only_key() {
MetricImpl expected = new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.FLOAT);

assertThat(new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.FLOAT)).isEqualTo(expected);
assertThat(new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.STRING)).isEqualTo(expected);
assertThat(new MetricImpl("some other key", SOME_NAME, Metric.MetricType.FLOAT)).isNotEqualTo(expected);
assertThat(new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.STRING)).isNotEqualTo(expected);
}

@Test
public void equals_ignores_valueType() {
assertThat(new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.FLOAT)).isEqualTo(new MetricImpl(SOME_KEY, "some other name", Metric.MetricType.FLOAT));
}

@Test
public void hashcode_uses_only_key_and_valueType() {
public void hashcode_uses_only_key() {
int expected = new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.FLOAT).hashCode();

assertThat(new MetricImpl(SOME_KEY, "some other name", Metric.MetricType.FLOAT).hashCode()).isEqualTo(expected);
assertThat(new MetricImpl(SOME_KEY, "some other name", Metric.MetricType.BOOL).hashCode()).isEqualTo(expected);
}

@Test
Expand Down

0 comments on commit 97a4b69

Please sign in to comment.