]> source.dussan.org Git - sonarqube.git/commitdiff
fix update of Measure from batch not support by MeasureRepository
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 16 Jun 2015 15:56:01 +0000 (17:56 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 16 Jun 2015 15:56:01 +0000 (17:56 +0200)
server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java
server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java

index 0e54bd0080c8bcb87236cf7824262382d2f6660e..e1bec6eeddee917ff2b7e02d8d2614c3eef0b8e7 100644 (file)
@@ -199,7 +199,11 @@ public class MeasureRepositoryImpl implements MeasureRepository {
       }
       , null);
 
-    return batchMeasureToMeasure.toMeasure(batchMeasure, metric);
+    Optional<Measure> res = batchMeasureToMeasure.toMeasure(batchMeasure, metric);
+    if (res.isPresent()) {
+      addLocal(component, metric, res.get());
+    }
+    return res;
   }
 
   private Optional<Measure> findLocal(Component component, Metric metric,
index bbb373be52882970b07a125d4cb057eab3247952..7dcb72722a87536120ded8d5bda9545ab30b76e0 100644 (file)
@@ -303,6 +303,17 @@ public class MeasureRepositoryImplTest {
     assertThat(res.get()).isSameAs(addedMeasure);
   }
 
+  @Test
+  public void getRawMeasure_retrieves_measure_from_batch_and_caches_it_locally_so_that_it_can_be_updated() {
+    reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of(
+        BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build()
+    ));
+
+    Optional<Measure> measure = underTest.getRawMeasure(FILE_COMPONENT, metric1);
+
+    underTest.update(FILE_COMPONENT, metric1, Measure.updateMeasure(measure.get()).create());
+  }
+
   @Test(expected = NullPointerException.class)
   public void getRawMeasure_for_rule_throws_NPE_if_Component_arg_is_null() {
     underTest.getRawMeasure(null, metric1, SOME_RULE);