From 44a8c358c81415c9ed69ca676619bc04f56c853b Mon Sep 17 00:00:00 2001 From: Godin Date: Mon, 13 Dec 2010 10:20:33 +0000 Subject: [PATCH] SONAR-833: New Web Service to get history of measures (time machine) --- .../wsclient/services/TimeMachineData.java | 15 +++++++++++ .../services/TimeMachineDataTest.java | 25 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 sonar-ws-client/src/test/java/org/sonar/wsclient/services/TimeMachineDataTest.java diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/TimeMachineData.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/TimeMachineData.java index e017253f783..4c68d2c3ca1 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/TimeMachineData.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/TimeMachineData.java @@ -7,6 +7,9 @@ import java.util.Map; public class TimeMachineData extends Model { + /** + * We use strings here in order to support measures with string value. + */ private Map> data = new HashMap>(); public Map> getData() { @@ -18,4 +21,16 @@ public class TimeMachineData extends Model { return this; } + public Double getValueAsDouble(Date date, int index) { + if (data.containsKey(date)) { + String valueStr = data.get(date).get(index); + try { + return valueStr == null ? null : Double.valueOf(valueStr); + } catch (NumberFormatException e) { + return null; + } + } + return null; + } + } diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/TimeMachineDataTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/TimeMachineDataTest.java new file mode 100644 index 00000000000..cd7fec9609f --- /dev/null +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/TimeMachineDataTest.java @@ -0,0 +1,25 @@ +package org.sonar.wsclient.services; + +import org.junit.Test; + +import java.util.*; + +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; +import static org.junit.Assert.assertThat; + +public class TimeMachineDataTest { + + @Test + public void valueAsDouble() { + Map> map = new HashMap>(); + Date date = new Date(); + map.put(date, Arrays.asList(null, "20.3", "hello")); + TimeMachineData data = new TimeMachineData().setData(map); + + assertThat(data.getValueAsDouble(date, 0), nullValue()); + assertThat(data.getValueAsDouble(date, 1), is(20.3)); + assertThat(data.getValueAsDouble(date, 2), nullValue()); + } + +} -- 2.39.5