import static org.assertj.core.api.Assertions.assertThatThrownBy; | import static org.assertj.core.api.Assertions.assertThatThrownBy; | ||||
import static org.assertj.core.api.AssertionsForClassTypes.tuple; | import static org.assertj.core.api.AssertionsForClassTypes.tuple; | ||||
import static org.junit.Assert.assertEquals; | import static org.junit.Assert.assertEquals; | ||||
import static org.junit.Assert.assertFalse; | |||||
import static org.junit.Assert.assertTrue; | |||||
import static org.mockito.ArgumentMatchers.any; | import static org.mockito.ArgumentMatchers.any; | ||||
import static org.mockito.ArgumentMatchers.eq; | import static org.mockito.ArgumentMatchers.eq; | ||||
import static org.mockito.Mockito.mock; | import static org.mockito.Mockito.mock; | ||||
} | } | ||||
@Test | |||||
public void reponse_should_show_isDefault() { | |||||
QualityGateDto defaultQualityGate = db.qualityGates().insertQualityGate(); | |||||
db.qualityGates().setDefaultQualityGate(defaultQualityGate); | |||||
ShowWsResponse response = ws.newRequest() | |||||
.setParam("name", defaultQualityGate.getName()) | |||||
.executeProtobuf(ShowWsResponse.class); | |||||
assertTrue(response.getIsDefault()); | |||||
QualityGateDto nonDefaultQualityGate = db.qualityGates().insertQualityGate(); | |||||
response = ws.newRequest() | |||||
.setParam("name", nonDefaultQualityGate.getName()) | |||||
.executeProtobuf(ShowWsResponse.class); | |||||
assertFalse(response.getIsDefault()); | |||||
} | |||||
@Test | @Test | ||||
public void fail_when_no_name() { | public void fail_when_no_name() { | ||||
QualityGateDto qualityGate = db.qualityGates().insertQualityGate(); | QualityGateDto qualityGate = db.qualityGates().insertQualityGate(); |
.setSince("4.3") | .setSince("4.3") | ||||
.setResponseExample(Resources.getResource(this.getClass(), "show-example.json")) | .setResponseExample(Resources.getResource(this.getClass(), "show-example.json")) | ||||
.setChangelog( | .setChangelog( | ||||
new Change("10.3", "'isDefault' field is added to the response"), | |||||
new Change("10.0", "Field 'id' in the response has been removed"), | new Change("10.0", "Field 'id' in the response has been removed"), | ||||
new Change("10.0", "Parameter 'id' is removed. Use 'name' instead."), | new Change("10.0", "Parameter 'id' is removed. Use 'name' instead."), | ||||
new Change("9.9", "'caycStatus' field is added to the response"), | new Change("9.9", "'caycStatus' field is added to the response"), | ||||
return ShowWsResponse.newBuilder() | return ShowWsResponse.newBuilder() | ||||
.setName(qualityGate.getName()) | .setName(qualityGate.getName()) | ||||
.setIsBuiltIn(qualityGate.isBuiltIn()) | .setIsBuiltIn(qualityGate.isBuiltIn()) | ||||
.setIsDefault(qualityGate.getUuid().equals(defaultQualityGate.getUuid())) | |||||
.setCaycStatus(caycStatus.toString()) | .setCaycStatus(caycStatus.toString()) | ||||
.addAllConditions(conditions.stream() | .addAllConditions(conditions.stream() | ||||
.map(toWsCondition(metricsByUuid)) | .map(toWsCondition(metricsByUuid)) |
} | } | ||||
], | ], | ||||
"isBuiltIn": false, | "isBuiltIn": false, | ||||
"isDefault": false, | |||||
"actions": { | "actions": { | ||||
"rename": true, | "rename": true, | ||||
"setAsDefault": true, | "setAsDefault": true, |
// GET api/qualitygates/show | // GET api/qualitygates/show | ||||
message ShowWsResponse { | message ShowWsResponse { | ||||
optional string id = 1; | optional string id = 1; | ||||
optional string name = 2; | |||||
required string name = 2; | |||||
repeated Condition conditions = 3; | repeated Condition conditions = 3; | ||||
optional bool isBuiltIn = 4; | |||||
required bool isBuiltIn = 4; | |||||
optional Actions actions = 5; | optional Actions actions = 5; | ||||
optional string caycStatus = 6; | |||||
required string caycStatus = 6; | |||||
required bool isDefault = 7; | |||||
message Condition { | message Condition { | ||||
required string id = 1; | required string id = 1; |