]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6620 Metric's equals/hashcode should use only the key 360/head
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Wed, 10 Jun 2015 09:00:09 +0000 (11:00 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 11 Jun 2015 08:28:35 +0000 (10:28 +0200)
server/sonar-server/src/main/java/org/sonar/server/computation/metric/MetricImpl.java
server/sonar-server/src/test/java/org/sonar/server/computation/metric/MetricImplTest.java

index 58153bfe8bf7516f693f2e94108a569a5086ca58..ea593168e164d3db73618b03a04595c3775cb95d 100644 (file)
@@ -62,13 +62,12 @@ public final class MetricImpl implements Metric {
       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
index 7e7de32a34fb89107b6e8b35db77bd6b5ad240fc..eeba504f15ebe401d26e6945fd550904ec4a1313 100644 (file)
@@ -53,24 +53,20 @@ public class MetricImplTest {
   }
 
   @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