import org.sonar.core.persistence.DaoUtils;
import org.sonar.core.persistence.DbSession;
import org.sonar.server.es.SearchOptions;
+import org.sonar.server.exceptions.NotFoundException;
import static com.google.common.collect.Lists.newArrayList;
});
}
+ public MetricDto selectByKey(DbSession session, String key) {
+ MetricDto metric = selectNullableByKey(session, key);
+ if (metric == null) {
+ throw new NotFoundException(String.format("Metric '%s' not found", key));
+ }
+ return metric;
+ }
+
public List<MetricDto> selectEnabled(DbSession session) {
return mapper(session).selectAllEnabled();
}
import org.sonar.core.metric.db.MetricDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.DbTester;
+import org.sonar.server.exceptions.NotFoundException;
import org.sonar.test.DbTests;
import static org.assertj.core.api.Assertions.assertThat;
assertThat(result.isEnabled()).isFalse();
}
+ @Test(expected = NotFoundException.class)
+ public void get_nullable_by_key() {
+ dao.selectByKey(session, "unknown");
+ }
+
@Test
public void get_manual_metric() {
dbTester.prepareDbUnit(getClass(), "manual_metric.xml");