diff options
author | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2016-08-29 18:44:19 +0200 |
---|---|---|
committer | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2016-08-30 16:09:18 +0200 |
commit | ef892610fe2888078e33b5fd95d9220bd62e3c03 (patch) | |
tree | 68482a74c281ea12658c02064c7f488d46783840 /sonar-ws | |
parent | 2e3c74b1b96f5a0475fc7c3482621412aa765192 (diff) | |
download | sonarqube-ef892610fe2888078e33b5fd95d9220bd62e3c03.tar.gz sonarqube-ef892610fe2888078e33b5fd95d9220bd62e3c03.zip |
SONAR-8004 WS settings/set handles property set
Diffstat (limited to 'sonar-ws')
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(); } |