From 1207ad7186c0c902dd1f769fd5878552eb225cfc Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Thu, 5 Apr 2012 16:24:23 +0200 Subject: [PATCH] SONAR-2983 Unable to define an alert for a boolean metric --- .../java/org/sonar/plugins/core/sensors/AlertUtils.java | 4 ++-- .../org/sonar/plugins/core/sensors/AlertUtilsTest.java | 8 ++++---- .../src/main/webapp/WEB-INF/app/helpers/alerts_helper.rb | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java index c9ab1e5d216..5faddcff821 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java @@ -84,7 +84,7 @@ public final class AlertUtils { return value; } if (metric.getType() == Metric.ValueType.BOOL) { - return Boolean.valueOf(value); + return Integer.parseInt(value); } if (metric.getType() == Metric.ValueType.RATING) { return Double.parseDouble(value); @@ -106,7 +106,7 @@ public final class AlertUtils { return measure.getData(); } if (metric.getType() == Metric.ValueType.BOOL) { - return measure.getValue() == 0d ? Boolean.FALSE : Boolean.TRUE; + return measure.getValue().intValue(); } if (metric.getType() == Metric.ValueType.RATING) { return measure.getValue(); diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/AlertUtilsTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/AlertUtilsTest.java index f7eda8eb909..dfc6eafd2b0 100644 --- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/AlertUtilsTest.java +++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/AlertUtilsTest.java @@ -218,17 +218,17 @@ public class AlertUtilsTest { alert.setOperator(Alert.OPERATOR_EQUALS); alert.setMetric(metric); - alert.setValueError("true"); + alert.setValueError("1"); Assert.assertEquals(Metric.Level.OK, AlertUtils.getLevel(alert, measure)); - alert.setValueError("false"); + alert.setValueError("0"); Assert.assertEquals(Metric.Level.ERROR, AlertUtils.getLevel(alert, measure)); alert.setOperator(Alert.OPERATOR_NOT_EQUALS); - alert.setValueError("true"); + alert.setValueError("1"); Assert.assertEquals(Metric.Level.ERROR, AlertUtils.getLevel(alert, measure)); - alert.setValueError("false"); + alert.setValueError("0"); Assert.assertEquals(Metric.Level.OK, AlertUtils.getLevel(alert, measure)); } diff --git a/sonar-server/src/main/webapp/WEB-INF/app/helpers/alerts_helper.rb b/sonar-server/src/main/webapp/WEB-INF/app/helpers/alerts_helper.rb index 4a97fba3452..87355bd7c94 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/helpers/alerts_helper.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/helpers/alerts_helper.rb @@ -76,13 +76,13 @@ module AlertsHelper text_field_tag fieldname, value, :size => 5 elsif alert.metric.val_type==Metric::VALUE_TYPE_BOOLEAN - select_tag fieldname, {'' => '', 'Yes' => '1', 'No' => '0'} + select_tag fieldname, options_for_select([['', ''], ['Yes', '1'], ['No', '0']], value) elsif alert.metric.val_type==Metric::VALUE_TYPE_STRING text_field_tag fieldname, value, :size => 5 elsif alert.metric.val_type==Metric::VALUE_TYPE_LEVEL - select_tag fieldname, {'' => '', 'OK' => Metric::TYPE_LEVEL_OK, 'Error' => Metric::TYPE_LEVEL_ERROR, 'Warning' => Metric::TYPE_LEVEL_WARN} + select_tag fieldname, options_for_select([['', ''], ['OK', Metric::TYPE_LEVEL_OK], ['Error', Metric::TYPE_LEVEL_ERROR], ['Warning', Metric::TYPE_LEVEL_WARN]], value) else hidden_field_tag fieldname, value end -- 2.39.5