aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws
diff options
context:
space:
mode:
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2016-08-29 18:44:19 +0200
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2016-08-30 16:09:18 +0200
commitef892610fe2888078e33b5fd95d9220bd62e3c03 (patch)
tree68482a74c281ea12658c02064c7f488d46783840 /sonar-ws
parent2e3c74b1b96f5a0475fc7c3482621412aa765192 (diff)
downloadsonarqube-ef892610fe2888078e33b5fd95d9220bd62e3c03.tar.gz
sonarqube-ef892610fe2888078e33b5fd95d9220bd62e3c03.zip
SONAR-8004 WS settings/set handles property set
Diffstat (limited to 'sonar-ws')
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SetRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SettingsWsParameters.java1
-rw-r--r--sonar-ws/src/test/java/org/sonarqube/ws/client/ServiceTester.java13
-rw-r--r--sonar-ws/src/test/java/org/sonarqube/ws/client/setting/SettingsServiceTest.java4
4 files changed, 32 insertions, 0 deletions
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SetRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SetRequest.java
index ab5c1bd340e..2c09dbd107a 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SetRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SetRequest.java
@@ -21,6 +21,7 @@
package org.sonarqube.ws.client.setting;
import java.util.List;
+import java.util.Map;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
@@ -31,6 +32,7 @@ public class SetRequest {
private final String key;
private final String value;
private final List<String> values;
+ private final List<Map<String, String>> fieldValues;
private final String componentId;
private final String componentKey;
@@ -38,6 +40,7 @@ public class SetRequest {
this.key = builder.key;
this.value = builder.value;
this.values = builder.values;
+ this.fieldValues = builder.fieldValues;
this.componentId = builder.componentId;
this.componentKey = builder.componentKey;
}
@@ -55,6 +58,10 @@ public class SetRequest {
return values;
}
+ public List<Map<String, String>> getFieldValues() {
+ return fieldValues;
+ }
+
@CheckForNull
public String getComponentId() {
return componentId;
@@ -73,6 +80,7 @@ public class SetRequest {
private String key;
private String value;
private List<String> values = emptyList();
+ private List<Map<String, String>> fieldValues = emptyList();
private String componentId;
private String componentKey;
@@ -95,6 +103,11 @@ public class SetRequest {
return this;
}
+ public Builder setFieldValues(List<Map<String, String>> fieldValues) {
+ this.fieldValues = fieldValues;
+ return this;
+ }
+
public Builder setComponentId(@Nullable String componentId) {
this.componentId = componentId;
return this;
@@ -108,6 +121,7 @@ public class SetRequest {
public SetRequest build() {
checkArgument(key != null && !key.isEmpty(), "Setting key is mandatory and must not be empty");
checkArgument(values != null, "Setting values must not be null");
+ checkArgument(fieldValues != null, "Setting fields values must not be null");
return new SetRequest(this);
}
}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SettingsWsParameters.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SettingsWsParameters.java
index 5c6e35d243d..85e4da4e300 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SettingsWsParameters.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/setting/SettingsWsParameters.java
@@ -34,6 +34,7 @@ public class SettingsWsParameters {
public static final String PARAM_KEY = "key";
public static final String PARAM_VALUE = "value";
public static final String PARAM_VALUES = "values";
+ public static final String PARAM_FIELD_VALUES = "fieldValues";
private SettingsWsParameters() {
// Only static stuff
diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/ServiceTester.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/ServiceTester.java
index 13d633ec1ec..89758a70d9d 100644
--- a/sonar-ws/src/test/java/org/sonarqube/ws/client/ServiceTester.java
+++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/ServiceTester.java
@@ -19,6 +19,7 @@
*/
package org.sonarqube.ws.client;
+import com.google.common.base.Joiner;
import com.google.protobuf.Parser;
import java.util.ArrayList;
import java.util.List;
@@ -88,6 +89,8 @@ import static org.mockito.Mockito.spy;
*
*/
public class ServiceTester<T extends BaseService> extends ExternalResource {
+ private static final Joiner COMMA_JOINER = Joiner.on(",");
+
private final T underTest;
private final List<GetCall> getCalls = new ArrayList<>();
private final List<PostCall> postCalls = new ArrayList<>();
@@ -318,6 +321,16 @@ public class ServiceTester<T extends BaseService> extends ExternalResource {
return this;
}
+ public RequestAssert hasParam(String key, List<String> values) {
+ isNotNull();
+
+ MapEntry<String, String> entry = MapEntry.entry(key, values.toString());
+ Assertions.assertThat(actual.getParams()).contains(entry);
+ this.assertedParams.add(entry);
+
+ return this;
+ }
+
public RequestAssert andNoOtherParam() {
isNotNull();
diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/setting/SettingsServiceTest.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/setting/SettingsServiceTest.java
index 41b403e82c8..9fe11418c09 100644
--- a/sonar-ws/src/test/java/org/sonarqube/ws/client/setting/SettingsServiceTest.java
+++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/setting/SettingsServiceTest.java
@@ -30,6 +30,7 @@ import org.sonarqube.ws.client.WsConnector;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
+import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_COMPONENT_ID;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_COMPONENT_KEY;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.setting.SettingsWsParameters.PARAM_KEYS;
@@ -75,12 +76,15 @@ public class SettingsServiceTest {
underTest.set(SetRequest.builder()
.setKey("sonar.debt")
.setValue("8h")
+ // TODO WS Client must handle multi value param
+ .setComponentId("UUID")
.setComponentKey("KEY")
.build());
serviceTester.assertThat(serviceTester.getPostRequest())
.hasParam(PARAM_KEY, "sonar.debt")
.hasParam(PARAM_VALUE, "8h")
+ .hasParam(PARAM_COMPONENT_ID, "UUID")
.hasParam(PARAM_COMPONENT_KEY, "KEY")
.andNoOtherParam();
}