From e102817f3094b0d3fab026c84129f831514db2de Mon Sep 17 00:00:00 2001 From: Derrick Johnson Date: Wed, 9 Jul 2014 15:35:52 -0700 Subject: [PATCH] added test for parsing strings --- .gitignore | 1 + .../model/alarm/AlarmExpressionTest.java | 62 +++++++++++++------ 2 files changed, 45 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 78a0c59e..180849c8 100755 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.project *.target/ *.settings/ +.idea target/ test-output/ test-config.yml diff --git a/java/mon-model/src/test/java/com/hpcloud/mon/common/model/alarm/AlarmExpressionTest.java b/java/mon-model/src/test/java/com/hpcloud/mon/common/model/alarm/AlarmExpressionTest.java index bd4f8e3d..5f0ff32b 100644 --- a/java/mon-model/src/test/java/com/hpcloud/mon/common/model/alarm/AlarmExpressionTest.java +++ b/java/mon-model/src/test/java/com/hpcloud/mon/common/model/alarm/AlarmExpressionTest.java @@ -14,26 +14,52 @@ import com.hpcloud.mon.common.model.metric.MetricDefinition; @Test public class AlarmExpressionTest { - public void shouldParseExpression() { - AlarmExpression expr = new AlarmExpression( - "avg(hpcs.compute{instance_id=5,metric_name=cpu,device=1}, 1) > 5 times 3 and avg(hpcs.compute{flavor_id=3,metric_name=mem}, 2) < 4 times 3"); - List alarms = expr.getSubExpressions(); + public void shouldParseExpression() { + AlarmExpression expr = new AlarmExpression( + "avg(hpcs.compute{instance_id=5,metric_name=cpu,device=1}, 1) > 5 times 3 and avg(hpcs.compute{flavor_id=3,metric_name=mem}, 2) < 4 times 3"); + List alarms = expr.getSubExpressions(); - AlarmSubExpression expected1 = new AlarmSubExpression(AggregateFunction.AVG, - new MetricDefinition("hpcs.compute", ImmutableMap.builder() - .put("instance_id", "5") - .put("metric_name", "cpu") - .put("device", "1") - .build()), AlarmOperator.GT, 5, 1, 3); - AlarmSubExpression expected2 = new AlarmSubExpression(AggregateFunction.AVG, - new MetricDefinition("hpcs.compute", ImmutableMap.builder() - .put("flavor_id", "3") - .put("metric_name", "mem") - .build()), AlarmOperator.LT, 4, 2, 3); + AlarmSubExpression expected1 = new AlarmSubExpression(AggregateFunction.AVG, + new MetricDefinition("hpcs.compute", ImmutableMap.builder() + .put("instance_id", "5") + .put("metric_name", "cpu") + .put("device", "1") + .build()), AlarmOperator.GT, 5, 1, 3); + AlarmSubExpression expected2 = new AlarmSubExpression(AggregateFunction.AVG, + new MetricDefinition("hpcs.compute", ImmutableMap.builder() + .put("flavor_id", "3") + .put("metric_name", "mem") + .build()), AlarmOperator.LT, 4, 2, 3); - assertEquals(alarms.get(0), expected1); - assertEquals(alarms.get(1), expected2); - } + assertEquals(alarms.get(0), expected1); + assertEquals(alarms.get(1), expected2); + } + + public void shouldParseString() { + + + AlarmExpression expr = new AlarmExpression( + "avg(hpcs.compute{instance_id=5,metric_name=cpu,device=1, url=\"https://www.google.com/?startpage=3&happygoing\"}, 1) > 5 times 3 and avg(hpcs.compute{flavor_id=3,metric_name=mem, specialchars=\"!@#$%^&*()~<>{}[],.\"}, 2) < 4 times 3"); + List alarms = expr.getSubExpressions(); + + AlarmSubExpression expected1 = new AlarmSubExpression(AggregateFunction.AVG, + new MetricDefinition("hpcs.compute", ImmutableMap.builder() + .put("instance_id", "5") + .put("metric_name", "cpu") + .put("url","\"https://www.google.com/?startpage=3&happygoing\"" ) + .put("device", "1") + .build()), AlarmOperator.GT, 5, 1, 3); + + AlarmSubExpression expected2 = new AlarmSubExpression(AggregateFunction.AVG, + new MetricDefinition("hpcs.compute", ImmutableMap.builder() + .put("flavor_id", "3") + .put("metric_name", "mem") + .put("specialchars","\"!@#$%^&*()~<>{}[],.\"") + .build()), AlarmOperator.LT, 4, 2, 3); + + assertEquals(alarms.get(0), expected1); + assertEquals(alarms.get(1), expected2); + } public void shouldParseExpressionWithoutType() { AlarmExpression expr = new AlarmExpression(