Clover coverage report - Dependency Finder
Coverage timestamp: Mon Nov 29 2010 15:00:50 PST
file stats: LOC: 314   Methods: 20
NCLOC: 205   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
TestContextAccumulatorMeasurement.java - 100% 65% 95.9%
coverage coverage
 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    public class TestContextAccumulatorMeasurement extends TestCase implements MeasurementVisitor {
 38    private MeasurementDescriptor descriptor;
 39    private AccumulatorMeasurement measurement;
 40    private Metrics metrics;
 41    private Measurement visited;
 42   
 43    private MeasurementDescriptor nameList;
 44    private MeasurementDescriptor numberList;
 45    private MeasurementDescriptor counter;
 46   
 47    private Metrics m1;
 48    private Metrics m2;
 49    private Metrics m3;
 50   
 51  11 protected void setUp() throws Exception {
 52  11 m1 = new Metrics("m1");
 53  11 m2 = new Metrics("m2");
 54  11 m3 = new Metrics("m3");
 55   
 56  11 nameList = new MeasurementDescriptor();
 57  11 nameList.setShortName("NL");
 58  11 nameList.setLongName("name list");
 59  11 nameList.setClassFor(NameListMeasurement.class);
 60   
 61  11 numberList = new MeasurementDescriptor();
 62  11 numberList.setShortName("NbL");
 63  11 numberList.setLongName("number list");
 64  11 numberList.setClassFor(NameListMeasurement.class);
 65   
 66  11 counter = new MeasurementDescriptor();
 67  11 counter.setShortName("NL");
 68  11 counter.setLongName("counter");
 69  11 counter.setClassFor(CounterMeasurement.class);
 70   
 71  11 m1.track(nameList.createMeasurement(m1));
 72  11 m1.addToMeasurement("NL", "abc");
 73  11 m1.addToMeasurement("NL", "def");
 74  11 m1.addToMeasurement("NL", "ghi");
 75   
 76  11 m1.track(numberList.createMeasurement(m1));
 77  11 m1.addToMeasurement("NbL", "123");
 78  11 m1.addToMeasurement("NbL", "456");
 79  11 m1.addToMeasurement("NbL", "789");
 80   
 81  11 m2.track(nameList.createMeasurement(m2));
 82  11 m2.addToMeasurement("NL", "jkl");
 83  11 m2.addToMeasurement("NL", "abc");
 84   
 85  11 m2.track(numberList.createMeasurement(m2));
 86  11 m2.addToMeasurement("NbL", "159");
 87  11 m2.addToMeasurement("NbL", "248");
 88   
 89  11 m3.track(counter.createMeasurement(m3));
 90  11 m3.addToMeasurement("NL", 1);
 91   
 92  11 metrics = new Metrics("metrics");
 93   
 94  11 descriptor = new MeasurementDescriptor();
 95  11 descriptor.setShortName("foo");
 96  11 descriptor.setLongName("bar");
 97  11 descriptor.setClassFor(ContextAccumulatorMeasurement.class);
 98  11 descriptor.setCached(false);
 99    }
 100   
 101  1 public void testCreateFromMeasurementDescriptor() throws Exception {
 102  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 103   
 104  1 assertNotNull(measurement);
 105  1 assertEquals(descriptor, measurement.getDescriptor());
 106  1 assertSame(descriptor, measurement.getDescriptor());
 107  1 assertEquals(ContextAccumulatorMeasurement.class, measurement.getClass());
 108  1 assertEquals("foo", measurement.getShortName());
 109  1 assertEquals("bar", measurement.getLongName());
 110    }
 111   
 112  1 public void testNullInit() throws Exception {
 113  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 114  1 assertEquals(0, measurement.getValue().intValue());
 115  1 assertTrue(measurement.getValues().isEmpty());
 116   
 117  1 metrics.addSubMetrics(m1);
 118  1 metrics.addSubMetrics(m2);
 119  1 metrics.addSubMetrics(m3);
 120   
 121  1 assertEquals(0, measurement.getValue().intValue());
 122  1 assertTrue(measurement.getValues().isEmpty());
 123    }
 124   
 125  1 public void testEmptyInit() throws Exception {
 126  1 descriptor.setInitText("");
 127   
 128  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 129  1 assertEquals(0, measurement.getValue().intValue());
 130  1 assertTrue(measurement.getValues().isEmpty());
 131   
 132  1 metrics.addSubMetrics(m1);
 133  1 metrics.addSubMetrics(m2);
 134  1 metrics.addSubMetrics(m3);
 135   
 136  1 assertEquals(0, measurement.getValue().intValue());
 137  1 assertTrue(measurement.getValues().isEmpty());
 138    }
 139   
 140  1 public void testRawValues() throws Exception {
 141  1 descriptor.setInitText("NL");
 142   
 143  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 144  1 assertEquals(0, measurement.getValue().intValue());
 145  1 assertTrue(measurement.getValues().isEmpty());
 146   
 147  1 metrics.track(nameList.createMeasurement(metrics));
 148  1 metrics.addToMeasurement("NL", "foo");
 149  1 metrics.addToMeasurement("NL", "bar");
 150   
 151  1 metrics.addSubMetrics(m1);
 152  1 metrics.addSubMetrics(m2);
 153  1 metrics.addSubMetrics(m3);
 154   
 155  1 assertEquals(2, measurement.getValue().intValue());
 156  1 assertTrue("\"foo\" not in " + measurement.getValues(), measurement.getValues().contains("foo"));
 157  1 assertTrue("\"bar\" not in " + measurement.getValues(), measurement.getValues().contains("bar"));
 158    }
 159   
 160  1 public void testCachedValues() throws Exception {
 161  1 descriptor.setInitText("NL");
 162  1 descriptor.setCached(true);
 163   
 164  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 165  1 assertEquals(0, measurement.getValue().intValue());
 166  1 assertTrue(measurement.getValues().isEmpty());
 167   
 168  1 metrics.track(nameList.createMeasurement(metrics));
 169  1 metrics.addToMeasurement("NL", "foo");
 170  1 metrics.addToMeasurement("NL", "bar");
 171   
 172  1 metrics.addSubMetrics(m1);
 173  1 metrics.addSubMetrics(m2);
 174  1 metrics.addSubMetrics(m3);
 175   
 176  1 assertEquals(0, measurement.getValue().intValue());
 177  1 assertTrue(measurement.getValues().isEmpty());
 178    }
 179   
 180  1 public void testSingleFiltered() throws Exception {
 181  1 descriptor.setInitText("NL /a/");
 182   
 183  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 184  1 assertEquals(0, measurement.getValue().intValue());
 185  1 assertTrue(measurement.getValues().isEmpty());
 186   
 187  1 metrics.track(nameList.createMeasurement(metrics));
 188  1 metrics.addToMeasurement("NL", "foo");
 189  1 metrics.addToMeasurement("NL", "bar");
 190   
 191  1 metrics.addSubMetrics(m1);
 192  1 metrics.addSubMetrics(m2);
 193  1 metrics.addSubMetrics(m3);
 194   
 195  1 assertEquals(1, measurement.getValue().intValue());
 196  1 assertTrue("\"bar\" not in " + measurement.getValues(), measurement.getValues().contains("bar"));
 197    }
 198   
 199  1 public void testMultiFilterFiltered() throws Exception {
 200  1 descriptor.setInitText("NL /a/\nNL /o/");
 201   
 202  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 203  1 assertEquals(0, measurement.getValue().intValue());
 204  1 assertTrue(measurement.getValues().isEmpty());
 205   
 206  1 metrics.track(nameList.createMeasurement(metrics));
 207  1 metrics.addToMeasurement("NL", "foo");
 208  1 metrics.addToMeasurement("NL", "bar");
 209   
 210  1 metrics.addSubMetrics(m1);
 211  1 metrics.addSubMetrics(m2);
 212  1 metrics.addSubMetrics(m3);
 213   
 214  1 assertEquals(2, measurement.getValue().intValue());
 215  1 assertTrue("\"foo\" not in " + measurement.getValues(), measurement.getValues().contains("foo"));
 216  1 assertTrue("\"bar\" not in " + measurement.getValues(), measurement.getValues().contains("bar"));
 217    }
 218   
 219  1 public void testModifiedValues() throws Exception {
 220  1 descriptor.setInitText("NL /(a)/");
 221   
 222  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 223  1 assertEquals(0, measurement.getValue().intValue());
 224  1 assertTrue(measurement.getValues().isEmpty());
 225   
 226  1 metrics.track(nameList.createMeasurement(metrics));
 227  1 metrics.addToMeasurement("NL", "foo");
 228  1 metrics.addToMeasurement("NL", "bar");
 229   
 230  1 metrics.addSubMetrics(m1);
 231  1 metrics.addSubMetrics(m2);
 232  1 metrics.addSubMetrics(m3);
 233   
 234  1 assertEquals(1, measurement.getValue().intValue());
 235  1 assertTrue("\"a\" not in " + measurement.getValues(), measurement.getValues().contains("a"));
 236    }
 237   
 238  1 public void testMultiMeasurements() throws Exception {
 239  1 descriptor.setInitText("NL /a/\nNbL /2/");
 240   
 241  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 242  1 assertEquals(0, measurement.getValue().intValue());
 243  1 assertTrue(measurement.getValues().isEmpty());
 244   
 245  1 metrics.track(nameList.createMeasurement(metrics));
 246  1 metrics.addToMeasurement("NL", "foo");
 247  1 metrics.addToMeasurement("NL", "bar");
 248   
 249  1 metrics.track(numberList.createMeasurement(metrics));
 250  1 metrics.addToMeasurement("NbL", "1234");
 251  1 metrics.addToMeasurement("NbL", "5678");
 252   
 253  1 metrics.addSubMetrics(m1);
 254  1 metrics.addSubMetrics(m2);
 255  1 metrics.addSubMetrics(m3);
 256   
 257  1 assertEquals(2, measurement.getValue().intValue());
 258  1 assertTrue("\"bar\" not in " + measurement.getValues(), measurement.getValues().contains("bar"));
 259  1 assertTrue("\"1234\" not in " + measurement.getValues(), measurement.getValues().contains("1234"));
 260    }
 261   
 262  1 public void testAccept() throws Exception {
 263  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 264   
 265  1 visited = null;
 266  1 measurement.accept(this);
 267  1 assertSame(measurement, visited);
 268    }
 269   
 270  1 public void testEmpty() throws Exception {
 271  1 descriptor.setInitText("NL");
 272   
 273  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 274  1 metrics.track(nameList.createMeasurement(metrics));
 275   
 276  1 assertTrue("Before Add()", measurement.isEmpty());
 277   
 278  1 metrics.addToMeasurement("NL", "foo");
 279   
 280  1 assertFalse("After Add()", measurement.isEmpty());
 281    }
 282   
 283  0 public void visitStatisticalMeasurement(StatisticalMeasurement measurement) {
 284    // Do nothing
 285    }
 286   
 287  0 public void visitRatioMeasurement(RatioMeasurement measurement) {
 288    // Do nothing
 289    }
 290   
 291  0 public void visitNbSubMetricsMeasurement(NbSubMetricsMeasurement measurement) {
 292    // Do nothing
 293    }
 294   
 295  0 public void visitCounterMeasurement(CounterMeasurement measurement) {
 296    // Do nothing
 297    }
 298   
 299  1 public void visitContextAccumulatorMeasurement(ContextAccumulatorMeasurement measurement) {
 300  1 visited = measurement;
 301    }
 302   
 303  0 public void visitNameListMeasurement(NameListMeasurement measurement) {
 304    // Do nothing
 305    }
 306   
 307  0 public void visitSubMetricsAccumulatorMeasurement(SubMetricsAccumulatorMeasurement measurement) {
 308    // Do nothing
 309    }
 310   
 311  0 public void visitSumMeasurement(SumMeasurement measurement) {
 312    // Do nothing
 313    }
 314    }