CustomMeasureDto customMeasure = dbClient.customMeasureDao().selectById(dbSession, id);
MetricDto metric = dbClient.metricDao().selectById(dbSession, customMeasure.getMetricId());
ComponentDto component = dbClient.componentDao().selectByUuid(dbSession, customMeasure.getComponentUuid());
+ checkPermissions(component);
User user = userIndex.getByLogin(userSession.getLogin());
- checkPermissions(component);
setValue(customMeasure, value, metric);
setDescription(customMeasure, description);
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.exceptions.ServerException;
+import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.measure.custom.persistence.CustomMeasureDao;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.server.metric.ws.MetricTesting;
.execute();
}
+ @Test
+ public void fail_if_not_logged_in() throws Exception {
+ userSessionRule.anonymous();
+ expectedException.expect(UnauthorizedException.class);
+ MetricDto metric = MetricTesting.newMetricDto().setEnabled(true).setValueType(ValueType.STRING.name());
+ dbClient.metricDao().insert(dbSession, metric);
+ ComponentDto component = ComponentTesting.newProjectDto("project-uuid");
+ dbClient.componentDao().insert(dbSession, component);
+ CustomMeasureDto customMeasure = newCustomMeasureDto()
+ .setMetricId(metric.getId())
+ .setComponentId(component.getId())
+ .setComponentUuid(component.uuid())
+ .setCreatedAt(system.now())
+ .setDescription("custom-measure-description")
+ .setTextValue("text-measure-value");
+ dbClient.customMeasureDao().insert(dbSession, customMeasure);
+ dbSession.commit();
+
+ ws.newPostRequest(CustomMeasuresWs.ENDPOINT, UpdateAction.ACTION)
+ .setParam(PARAM_ID, String.valueOf(customMeasure.getId()))
+ .setParam(PARAM_DESCRIPTION, "new-custom-measure-description")
+ .setParam(PARAM_VALUE, "1984")
+ .execute();
+ }
+
@Test
public void fail_if_custom_measure_id_is_missing_in_request() throws Exception {
expectedException.expect(IllegalArgumentException.class);