From 97a4b69e4653d0db1040705738ab8269bb907da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lesaint?= Date: Wed, 10 Jun 2015 11:00:09 +0200 Subject: [PATCH] SONAR-6620 Metric's equals/hashcode should use only the key --- .../sonar/server/computation/metric/MetricImpl.java | 5 ++--- .../server/computation/metric/MetricImplTest.java | 12 ++++-------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/metric/MetricImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/metric/MetricImpl.java index 58153bfe8bf7..ea593168e164 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/metric/MetricImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/metric/MetricImpl.java @@ -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 diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/metric/MetricImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/metric/MetricImplTest.java index 7e7de32a34fb..eeba504f15eb 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/metric/MetricImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/metric/MetricImplTest.java @@ -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