Coverage Report - com.jeantessier.metrics.TestSumMeasurement
 
Classes in this File Line Coverage Branch Coverage Complexity
TestSumMeasurement
96%
181/188
50%
4/8
1
 
 1  
 /*
 2  
  *  Copyright (c) 2001-2009, Jean Tessier
 3  
  *  All rights reserved.
 4  
  *  
 5  
  *  Redistribution and use in source and binary forms, with or without
 6  
  *  modification, are permitted provided that the following conditions
 7  
  *  are met:
 8  
  *  
 9  
  *      * Redistributions of source code must retain the above copyright
 10  
  *        notice, this list of conditions and the following disclaimer.
 11  
  *  
 12  
  *      * Redistributions in binary form must reproduce the above copyright
 13  
  *        notice, this list of conditions and the following disclaimer in the
 14  
  *        documentation and/or other materials provided with the distribution.
 15  
  *  
 16  
  *      * Neither the name of Jean Tessier nor the names of his contributors
 17  
  *        may be used to endorse or promote products derived from this software
 18  
  *        without specific prior written permission.
 19  
  *  
 20  
  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 21  
  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 22  
  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 23  
  *  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
 24  
  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 25  
  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 26  
  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 27  
  *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 28  
  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 29  
  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 30  
  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 31  
  */
 32  
 
 33  
 package com.jeantessier.metrics;
 34  
 
 35  
 import junit.framework.*;
 36  
 
 37  25
 public class TestSumMeasurement extends TestCase implements MeasurementVisitor {
 38  
     private MeasurementDescriptor descriptor;
 39  
     private Metrics metrics;
 40  
     private SumMeasurement measurement;
 41  
     private Measurement visited;
 42  
     
 43  
     protected void setUp() {
 44  25
         descriptor = new MeasurementDescriptor();
 45  25
         descriptor.setShortName("foo");
 46  25
         descriptor.setLongName("FOO");
 47  25
         descriptor.setClassFor(SumMeasurement.class);
 48  25
         descriptor.setCached(false);
 49  
 
 50  25
         metrics = new Metrics("foobar");
 51  25
     }
 52  
 
 53  
     public void testMeasurementDescriptor() throws Exception {
 54  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 55  
         
 56  1
         assertNotNull(measurement.getDescriptor());
 57  1
         assertEquals(SumMeasurement.class, measurement.getDescriptor().getClassFor());
 58  1
         assertEquals("foo", measurement.getShortName());
 59  1
         assertEquals("FOO", measurement.getLongName());
 60  1
     }
 61  
 
 62  
     public void testCreateFromMeasurementDescriptor() throws Exception {
 63  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 64  
         
 65  1
         assertNotNull(measurement);
 66  1
         assertEquals(descriptor, measurement.getDescriptor());
 67  1
         assertSame(descriptor, measurement.getDescriptor());
 68  1
         assertEquals(SumMeasurement.class, measurement.getClass());
 69  1
         assertEquals("foo", measurement.getShortName());
 70  1
         assertEquals("FOO", measurement.getLongName());
 71  1
     }
 72  
 
 73  
     public void testCreateDefault() {
 74  1
         measurement = new SumMeasurement(descriptor, null,  null);
 75  
 
 76  1
         assertEquals(0, measurement.getValue().doubleValue(), 0.01);
 77  1
     }
 78  
 
 79  
     public void testEmptyInitText() throws Exception {
 80  1
         descriptor.setInitText("");
 81  
 
 82  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 83  
 
 84  1
         assertEquals(0, measurement.getValue().doubleValue(), 0.01);
 85  1
     }
 86  
 
 87  
     public void testEmptyLineInitText() throws Exception {
 88  1
         descriptor.setInitText("\n");
 89  
 
 90  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 91  
 
 92  1
         assertEquals(0, measurement.getValue().doubleValue(), 0.01);
 93  1
     }
 94  
 
 95  
     public void testDashInitText() throws Exception {
 96  1
         descriptor.setInitText("-");
 97  
 
 98  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 99  
 
 100  1
         assertEquals(0, measurement.getValue().doubleValue(), 0.01);
 101  1
     }
 102  
 
 103  
     public void testConstant() throws Exception {
 104  1
         descriptor.setInitText("2");
 105  
 
 106  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 107  
 
 108  1
         assertEquals(2, measurement.getValue().doubleValue(), 0.01);
 109  1
     }
 110  
 
 111  
     public void testConstantAndEmptyLine() throws Exception {
 112  1
         descriptor.setInitText("\n2\n");
 113  
 
 114  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 115  
 
 116  1
         assertEquals(2, measurement.getValue().doubleValue(), 0.01);
 117  1
     }
 118  
 
 119  
     public void testAddition() throws Exception {
 120  1
         descriptor.setInitText("1\n1");
 121  
 
 122  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 123  
 
 124  1
         assertEquals(2, measurement.getValue().doubleValue(), 0.01);
 125  1
     }
 126  
 
 127  
     public void testNegative() throws Exception {
 128  1
         descriptor.setInitText("-2");
 129  
 
 130  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 131  
 
 132  1
         assertEquals(-2, measurement.getValue().doubleValue(), 0.01);
 133  1
     }
 134  
 
 135  
     public void testSubstraction() throws Exception {
 136  1
         descriptor.setInitText("2\n-1");
 137  
 
 138  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 139  
 
 140  1
         assertEquals(1, measurement.getValue().doubleValue(), 0.01);
 141  
 
 142  1
         descriptor.setInitText("1\n-2");
 143  
 
 144  1
         measurement = (SumMeasurement) descriptor.createMeasurement();
 145  
 
 146  1
         assertEquals(-1, measurement.getValue().doubleValue(), 0.01);
 147  1
     }
 148  
 
 149  
     public void testSubMeasurement() throws Exception {
 150  1
         descriptor.setInitText("bar");
 151  
 
 152  1
         metrics.track("bar", new CounterMeasurement(null, metrics, "2"));
 153  
         
 154  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 155  
 
 156  1
         assertEquals(2, measurement.getValue().doubleValue(), 0.01);
 157  1
     }
 158  
 
 159  
     public void testStatisticalMeasurement() throws Exception {
 160  1
         descriptor.setInitText("bar DISPOSE_SUM");
 161  
 
 162  1
         metrics.track("bar", new StatisticalMeasurement(null, metrics, "bar"));
 163  
 
 164  1
         Metrics submetrics = new Metrics("submetrics");
 165  1
         submetrics.track("bar", new CounterMeasurement(null, submetrics, "2"));
 166  1
         metrics.addSubMetrics(submetrics);
 167  
         
 168  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 169  
 
 170  1
         assertEquals(2, measurement.getValue().doubleValue(), 0.01);
 171  1
     }
 172  
 
 173  
     public void testAddMeasurements() throws Exception {
 174  1
         descriptor.setInitText("bar\nbaz");
 175  
 
 176  1
         metrics.track("bar", new CounterMeasurement(null, metrics, "1"));
 177  1
         metrics.track("baz", new CounterMeasurement(null, metrics, "1"));
 178  
 
 179  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 180  
 
 181  1
         assertEquals(2, measurement.getValue().doubleValue(), 0.01);
 182  1
     }
 183  
 
 184  
     public void testSubstractMeasurements() throws Exception {
 185  1
         descriptor.setInitText("bar\n-baz");
 186  
 
 187  1
         metrics.track("bar", new CounterMeasurement(null, metrics, "1"));
 188  1
         metrics.track("baz", new CounterMeasurement(null, metrics, "2"));
 189  
 
 190  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 191  
 
 192  1
         assertEquals(-1, measurement.getValue().doubleValue(), 0.01);
 193  1
     }
 194  
 
 195  
     public void testInUndefinedRange() throws Exception {
 196  1
         descriptor.setInitText("bar");
 197  
 
 198  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 199  
 
 200  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 201  
 
 202  1
         assertTrue(measurement.isInRange());
 203  
 
 204  1
         metrics.addToMeasurement("bar", 1);
 205  
         
 206  1
         assertTrue(measurement.isInRange());
 207  
 
 208  1
         metrics.addToMeasurement("bar", 1);
 209  
 
 210  1
         assertTrue(measurement.isInRange());
 211  1
     }
 212  
 
 213  
     public void testInOpenRange() throws Exception {
 214  1
         descriptor.setInitText("bar");
 215  
 
 216  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 217  
 
 218  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 219  
         
 220  1
         assertTrue(measurement.isInRange());
 221  
 
 222  1
         metrics.addToMeasurement("bar", 1);
 223  
         
 224  1
         assertTrue(measurement.isInRange());
 225  
 
 226  1
         metrics.addToMeasurement("bar", 1);
 227  
 
 228  1
         assertTrue(measurement.isInRange());
 229  1
     }
 230  
 
 231  
     public void testInLowerBoundRange() throws Exception {
 232  1
         descriptor.setInitText("bar");
 233  1
         descriptor.setLowerThreshold(new Integer(1));
 234  
 
 235  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 236  
 
 237  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 238  
 
 239  1
         assertEquals(0, measurement.getValue().intValue());
 240  1
         assertTrue(!measurement.isInRange());
 241  
 
 242  1
         metrics.addToMeasurement("bar", 1);
 243  
 
 244  1
         assertEquals(1, measurement.getValue().intValue());
 245  1
         assertTrue(measurement.isInRange());
 246  
 
 247  1
         metrics.addToMeasurement("bar", 1);
 248  
 
 249  1
         assertEquals(2, measurement.getValue().intValue());
 250  1
         assertTrue(measurement.isInRange());
 251  1
     }
 252  
 
 253  
     public void testInUpperBoundRange() throws Exception {
 254  1
         descriptor.setInitText("bar");
 255  1
         descriptor.setUpperThreshold(new Float(1.5));
 256  
 
 257  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 258  
 
 259  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 260  
         
 261  1
         assertTrue(measurement.isInRange());
 262  
 
 263  1
         metrics.addToMeasurement("bar", 1);
 264  
         
 265  1
         assertTrue(measurement.isInRange());
 266  
 
 267  1
         metrics.addToMeasurement("bar", 1);
 268  
         
 269  1
         assertTrue(!measurement.isInRange());
 270  1
     }
 271  
 
 272  
     public void testInBoundRange() throws Exception {
 273  1
         descriptor.setInitText("bar");
 274  1
         descriptor.setLowerThreshold(new Integer(1));
 275  1
         descriptor.setUpperThreshold(new Float(1.5));
 276  
 
 277  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 278  
 
 279  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 280  
         
 281  1
         assertTrue(!measurement.isInRange());
 282  
 
 283  1
         metrics.addToMeasurement("bar", 1);
 284  
         
 285  1
         assertTrue(measurement.isInRange());
 286  
 
 287  1
         metrics.addToMeasurement("bar", 1);
 288  
         
 289  1
         assertTrue(!measurement.isInRange());
 290  1
     }
 291  
 
 292  
     public void testCachedValue() throws Exception {
 293  1
         descriptor.setInitText("bar");
 294  1
         descriptor.setCached(true);
 295  
 
 296  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 297  
 
 298  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 299  
 
 300  1
         assertEquals(0, measurement.getValue().doubleValue(), 0.01);
 301  
 
 302  1
         metrics.addToMeasurement("bar", 1);
 303  
 
 304  1
         assertEquals(0, measurement.getValue().doubleValue(), 0.01);
 305  1
     }
 306  
     
 307  
     public void testAccept() {
 308  1
         measurement = new SumMeasurement(null, null, null);
 309  
 
 310  1
         visited = null;
 311  1
         measurement.accept(this);
 312  1
         assertSame(measurement, visited);
 313  1
     }
 314  
 
 315  
     public void testEmptyWithOneMeasurement() throws Exception {
 316  1
         descriptor.setInitText("bar");
 317  
 
 318  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 319  
 
 320  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 321  
         
 322  1
         assertTrue("Before Add()", measurement.isEmpty());
 323  
 
 324  1
         metrics.addToMeasurement("bar", 1);
 325  
         
 326  1
         assertFalse("After Add(1)", measurement.isEmpty());
 327  
 
 328  1
         metrics.addToMeasurement("bar", -1);
 329  
 
 330  1
         assertFalse("After Add(-1)", measurement.isEmpty());
 331  1
     }
 332  
 
 333  
     public void testEmptyWithTwoMeasurements() throws Exception {
 334  1
         descriptor.setInitText("bar\nbaz");
 335  
 
 336  1
         metrics.track("bar", new CounterMeasurement(null, null, null));
 337  1
         metrics.track("baz", new CounterMeasurement(null, null, null));
 338  
 
 339  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 340  
 
 341  1
         assertTrue("bar is not empty", metrics.getMeasurement("bar").isEmpty());
 342  1
         assertTrue("baz is not empty", metrics.getMeasurement("baz").isEmpty());
 343  1
         assertTrue("Before Add()", measurement.isEmpty());
 344  
 
 345  1
         metrics.addToMeasurement("bar", 1);
 346  
         
 347  1
         assertFalse("bar is empty", metrics.getMeasurement("bar").isEmpty());
 348  1
         assertTrue("baz is not empty", metrics.getMeasurement("baz").isEmpty());
 349  1
         assertFalse("After Add(1)", measurement.isEmpty());
 350  
 
 351  1
         metrics.addToMeasurement("bar", -1);
 352  
 
 353  1
         assertFalse("bar is empty", metrics.getMeasurement("bar").isEmpty());
 354  1
         assertTrue("baz is not empty", metrics.getMeasurement("baz").isEmpty());
 355  1
         assertFalse("After Add(-1)", measurement.isEmpty());
 356  1
     }
 357  
 
 358  
     public void testEmptyWithConstant() throws Exception {
 359  1
         descriptor.setInitText("2");
 360  
 
 361  1
         measurement = (SumMeasurement) descriptor.createMeasurement(metrics);
 362  
 
 363  1
         assertTrue("with constants", measurement.isEmpty());
 364  1
     }
 365  
     
 366  
     public void visitStatisticalMeasurement(StatisticalMeasurement measurement) {
 367  
         // Do nothing
 368  0
     }
 369  
     
 370  
     public void visitRatioMeasurement(RatioMeasurement measurement) {
 371  
         // Do nothing
 372  0
     }
 373  
     
 374  
     public void visitNbSubMetricsMeasurement(NbSubMetricsMeasurement measurement) {
 375  
         // Do nothing
 376  0
     }
 377  
     
 378  
     public void visitCounterMeasurement(CounterMeasurement measurement) {
 379  
         // Do nothing
 380  0
     }
 381  
     
 382  
     public void visitContextAccumulatorMeasurement(ContextAccumulatorMeasurement measurement) {
 383  
         // Do nothing
 384  0
     }
 385  
     
 386  
     public void visitNameListMeasurement(NameListMeasurement measurement) {
 387  
         // Do nothing
 388  0
     }
 389  
     
 390  
     public void visitSubMetricsAccumulatorMeasurement(SubMetricsAccumulatorMeasurement measurement) {
 391  
         // Do nothing
 392  0
     }
 393  
     
 394  
     public void visitSumMeasurement(SumMeasurement measurement) {
 395  1
         visited = measurement;
 396  1
     }
 397  
 }