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; return false;
} }
MetricImpl metric = (MetricImpl) o; MetricImpl metric = (MetricImpl) o;
return Objects.equals(key, metric.key) && return Objects.equals(key, metric.key);
Objects.equals(type, metric.type);
} }


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


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


@Test @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); 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.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 other key", SOME_NAME, Metric.MetricType.FLOAT)).isNotEqualTo(expected);
assertThat(new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.STRING)).isNotEqualTo(expected);
} }


@Test @Test
public void equals_ignores_valueType() { public void hashcode_uses_only_key() {
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() {
int expected = new MetricImpl(SOME_KEY, SOME_NAME, Metric.MetricType.FLOAT).hashCode(); 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.FLOAT).hashCode()).isEqualTo(expected);
assertThat(new MetricImpl(SOME_KEY, "some other name", Metric.MetricType.BOOL).hashCode()).isEqualTo(expected);
} }


@Test @Test
Expand Down

0 comments on commit 97a4b69

Please sign in to comment.