/******************************************************************************* * Copyright (c) 2007, 2014 Massimiliano Ziccardi * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *******************************************************************************/ package it.jnrpe.utils.thresholds; import it.jnrpe.plugins.Metric; import it.jnrpe.plugins.MetricBuilder; import org.junit.Assert; import org.junit.Test; import java.math.BigDecimal; /** */ public class RangeTest { private static Metric metricWithValue(String value) { return MetricBuilder.forMetric("dummy") .withValue(new BigDecimal(value)).build(); } /** * Method testLeftInfinityInclusive. * * @throws Exception */ @Test public void testLeftInfinityInclusive() throws Exception { Range range = new Range("-inf..50"); Assert.assertTrue(range.isValueInside(metricWithValue("-1000000"))); Assert.assertTrue(range.isValueInside(metricWithValue("49.9999"))); Assert.assertTrue(range.isValueInside(metricWithValue("-99999999999999999999999"))); Assert.assertFalse(range.isValueInside(metricWithValue("50.1"))); Assert.assertTrue(range.isValueInside(metricWithValue("50"))); } /** * Method tesRightInfinityInclusive. * * @throws Exception */ @Test public void tesRightInfinityInclusive() throws Exception { Range range = new Range("50..+inf"); Assert.assertFalse(range.isValueInside(metricWithValue("-1000000"))); Assert.assertFalse(range.isValueInside(metricWithValue("49.9999"))); Assert.assertTrue(range.isValueInside(metricWithValue("99999999999999999999999"))); Assert.assertTrue(range.isValueInside(metricWithValue("50.1"))); Assert.assertTrue(range.isValueInside(metricWithValue("50"))); } /** * Method testLeftInfinityExclusive. * * @throws Exception */ @Test public void testLeftInfinityExclusive() throws Exception { Range range = new Range("-inf..50)"); Assert.assertTrue(range.isValueInside(metricWithValue("-1000000"))); Assert.assertTrue(range.isValueInside(metricWithValue("49.9999"))); Assert.assertTrue(range.isValueInside(metricWithValue("-99999999999999999999999"))); Assert.assertFalse(range.isValueInside(metricWithValue("50.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50"))); } /** * Method tesRightInfinityExclusive. * * @throws Exception */ @Test public void tesRightInfinityExclusive() throws Exception { Range range = new Range("(50..+inf"); Assert.assertFalse(range.isValueInside(metricWithValue("-1000000"))); Assert.assertFalse(range.isValueInside(metricWithValue("49.9999"))); Assert.assertTrue(range.isValueInside(metricWithValue("99999999999999999999999"))); Assert.assertTrue(range.isValueInside(metricWithValue("50.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50"))); } /** * Method testLeftInclusive. * * @throws Exception */ @Test public void testLeftInclusive() throws Exception { Range range = new Range("50..150)"); Assert.assertFalse(range.isValueInside(metricWithValue("-1000000"))); Assert.assertFalse(range.isValueInside(metricWithValue("49.9999"))); Assert.assertFalse(range.isValueInside(metricWithValue("150.1"))); Assert.assertTrue(range.isValueInside(metricWithValue("50.1"))); Assert.assertTrue(range.isValueInside(metricWithValue("50.0"))); Assert.assertTrue(range.isValueInside(metricWithValue("149.999999"))); } /** * Method testRightInclusive. * * @throws Exception */ @Test public void testRightInclusive() throws Exception { Range range = new Range("(50..150"); Assert.assertFalse(range.isValueInside(metricWithValue("-1000000"))); Assert.assertFalse(range.isValueInside(metricWithValue("49.9999"))); Assert.assertFalse(range.isValueInside(metricWithValue("150.1"))); Assert.assertTrue(range.isValueInside(metricWithValue("50.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50"))); Assert.assertTrue(range.isValueInside(metricWithValue("150.0000"))); } /** * Method testNegatedInclusive. * * @throws Exception */ @Test public void testNegatedInclusive() throws Exception { Range range = new Range("^50..150"); Assert.assertTrue(range.isValueInside(metricWithValue("-1000000"))); Assert.assertTrue(range.isValueInside(metricWithValue("49.9999"))); Assert.assertTrue(range.isValueInside(metricWithValue("150.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50"))); Assert.assertFalse(range.isValueInside(metricWithValue("150.0000"))); } /** * Method testNegatedExclusive. * * @throws Exception */ @Test public void testNegatedExclusive() throws Exception { Range range = new Range("^(50..150)"); Assert.assertTrue(range.isValueInside(metricWithValue("-1000000"))); Assert.assertTrue(range.isValueInside(metricWithValue("49.9999"))); Assert.assertTrue(range.isValueInside(metricWithValue("150.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50.1"))); Assert.assertTrue(range.isValueInside(metricWithValue("50"))); Assert.assertTrue(range.isValueInside(metricWithValue("150.0000"))); } /** * Method testNegatedAll. * * @throws Exception */ @Test public void testNegatedAll() throws Exception { Range range = new Range("^-inf..+inf"); Assert.assertFalse(range.isValueInside(metricWithValue("-1000000"))); Assert.assertFalse(range.isValueInside(metricWithValue("49.9999"))); Assert.assertFalse(range.isValueInside(metricWithValue("150.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50.1"))); Assert.assertFalse(range.isValueInside(metricWithValue("50"))); Assert.assertFalse(range.isValueInside(metricWithValue("150.0000"))); } /** * Method testNegatedAllInt. * * @throws Exception */ @Test public void testNegatedAllInt() throws Exception { Range range = new Range("^-inf..+inf"); Assert.assertFalse(range.isValueInside(metricWithValue("-1000000"))); Assert.assertFalse(range.isValueInside(metricWithValue("50"))); Assert.assertFalse(range.isValueInside(metricWithValue("150"))); } /** * Method testNull. * * @throws Exception */ @Test(expected = RangeException.class) public void testNull() throws Exception { new Range(null); } /** * Method testEvaluateNull. * * @throws Exception */ @Test(expected = NullPointerException.class) public void testEvaluateNull() throws Exception { Range range = new Range("10..200"); range.isValueInside(null); } /** * Method testWhiteString. * * @throws Exception */ @Test(expected = InvalidRangeSyntaxException.class) public void testWhiteString() throws Exception { new Range(" "); } }