aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws-client
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2011-07-28 19:53:47 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2011-07-28 19:54:47 +0200
commit15f5d562a3da55f3702500c1c855f3f9d7a52e2d (patch)
tree1be83d904bed7fe249f9e9df9cb8f0d707082c04 /sonar-ws-client
parent27f631d830974a9744b0dcad632f454ff6f85814 (diff)
downloadsonarqube-15f5d562a3da55f3702500c1c855f3f9d7a52e2d.tar.gz
sonarqube-15f5d562a3da55f3702500c1c855f3f9d7a52e2d.zip
SONAR-2648 add ManualMeasureCreateQuery
Diffstat (limited to 'sonar-ws-client')
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/services/ManualMeasureCreateQuery.java95
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/services/ManualMeasureCreateQueryTest.java42
2 files changed, 137 insertions, 0 deletions
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ManualMeasureCreateQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ManualMeasureCreateQuery.java
new file mode 100644
index 00000000000..83d95c37922
--- /dev/null
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ManualMeasureCreateQuery.java
@@ -0,0 +1,95 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2011 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * Sonar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+ */
+package org.sonar.wsclient.services;
+
+/**
+ * @since 2.10
+ */
+public class ManualMeasureCreateQuery extends CreateQuery<ManualMeasure> {
+
+ private String resourceKey;
+ private String metricKey;
+ private Double value;
+ private String textValue;
+ private String description;
+
+ private ManualMeasureCreateQuery(String resourceKey, String metricKey) {
+ this.resourceKey = resourceKey;
+ this.metricKey = metricKey;
+ }
+
+ public String getResourceKey() {
+ return resourceKey;
+ }
+
+ public String getMetricKey() {
+ return metricKey;
+ }
+
+ public Double getValue() {
+ return value;
+ }
+
+ public ManualMeasureCreateQuery setValue(Double value) {
+ this.value = value;
+ return this;
+ }
+
+ public String getTextValue() {
+ return textValue;
+ }
+
+ public ManualMeasureCreateQuery setTextValue(String textValue) {
+ this.textValue = textValue;
+ return this;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public ManualMeasureCreateQuery setDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ @Override
+ public String getUrl() {
+ StringBuilder url = new StringBuilder();
+ url.append(ManualMeasureQuery.BASE_URL);
+ appendUrlParameter(url, "resource", resourceKey);
+ appendUrlParameter(url, "metric", metricKey);
+ appendUrlParameter(url, "val", value);
+
+ // limitations : POST body is not used, so the complete URL size is limited
+ appendUrlParameter(url, "text", textValue);
+ appendUrlParameter(url, "desc", description);
+ return url.toString();
+ }
+
+ @Override
+ public Class<ManualMeasure> getModelClass() {
+ return ManualMeasure.class;
+ }
+
+ public static ManualMeasureCreateQuery create(String resourceKey, String metricKey) {
+ return new ManualMeasureCreateQuery(resourceKey, metricKey);
+ }
+}
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ManualMeasureCreateQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ManualMeasureCreateQueryTest.java
new file mode 100644
index 00000000000..1a191df8d7a
--- /dev/null
+++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ManualMeasureCreateQueryTest.java
@@ -0,0 +1,42 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2011 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * Sonar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+ */
+package org.sonar.wsclient.services;
+
+import org.junit.Test;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+
+public class ManualMeasureCreateQueryTest extends QueryTestCase {
+
+ @Test
+ public void shouldCreateWithOnlyMandatoryProperties() {
+ ManualMeasureCreateQuery query = ManualMeasureCreateQuery.create("foo", "team_size");
+ assertThat(query.getUrl(), is("/api/manual_measures?resource=foo&metric=team_size&"));
+ assertThat(query.getModelClass().getName(), is(ManualMeasure.class.getName()));
+ }
+
+ @Test
+ public void shouldCreateWithAllOptionalProperties() {
+ ManualMeasureCreateQuery query = ManualMeasureCreateQuery.create("foo", "team_size").setValue(3.14).setTextValue("xxx").setDescription("yyy");
+ assertThat(query.getUrl(), is("/api/manual_measures?resource=foo&metric=team_size&val=3.14&text=xxx&desc=yyy&"));
+ assertThat(query.getModelClass().getName(), is(ManualMeasure.class.getName()));
+ }
+} \ No newline at end of file