diff options
Diffstat (limited to 'sonar-ws-client/src')
2 files changed, 20 insertions, 2 deletions
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClient.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClient.java index 601acbaf2eb..ff24c155604 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClient.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClient.java @@ -113,8 +113,10 @@ public class DefaultQualityGateClient implements QualityGateClient { Map jsonRoot = (Map) JSONValue.parse(json); Collection<Map> conditionArray = (Collection<Map>) jsonRoot.get("conditions"); Collection<QualityGateCondition> conditions = new ArrayList<QualityGateCondition>(); - for (Map conditionJson: conditionArray) { - conditions.add(new DefaultQualityGateCondition(conditionJson)); + if (conditionArray != null) { + for (Map conditionJson: conditionArray) { + conditions.add(new DefaultQualityGateCondition(conditionJson)); + } } return conditions; } diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClientTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClientTest.java index a2628931f74..7bb2f309a26 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClientTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/qualitygate/internal/DefaultQualityGateClientTest.java @@ -168,6 +168,22 @@ public class DefaultQualityGateClientTest { assertThat(sixth.warningThreshold()).isEqualTo("0"); } + @Test + public void should_show_empty_qualitygate_by_id() { + HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); + + httpServer.stubResponseBody("{\"id\":5,\"name\":\"Sonar way\"}"); + + QualityGateClient client = new DefaultQualityGateClient(requestFactory); + + QualityGateDetails qGate = client.show(5L); + assertThat(httpServer.requestedPath()).isEqualTo("/api/qualitygates/show?id=5"); + assertThat(qGate.id()).isEqualTo(5L); + assertThat(qGate.name()).isEqualTo("Sonar way"); + + Collection<QualityGateCondition> conditions = qGate.conditions(); + assertThat(conditions).isEmpty(); + } @Test public void should_destroy_qualitygate() { |