Clover coverage report - Dependency Finder
Coverage timestamp: Mon Nov 29 2010 15:00:50 PST
file stats: LOC: 293   Methods: 20
NCLOC: 190   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
TestSubMetricsAccumulatorMeasurement.java - 100% 65% 95.5%
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 TestSubMetricsAccumulatorMeasurement 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(SubMetricsAccumulatorMeasurement.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(SubMetricsAccumulatorMeasurement.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.addSubMetrics(m1);
 148  1 metrics.addSubMetrics(m2);
 149  1 metrics.addSubMetrics(m3);
 150   
 151  1 assertEquals(4, measurement.getValue().intValue());
 152  1 assertTrue("\"abc\" not in " + measurement.getValues(), measurement.getValues().contains("abc"));
 153  1 assertTrue("\"def\" not in " + measurement.getValues(), measurement.getValues().contains("def"));
 154  1 assertTrue("\"ghi\" not in " + measurement.getValues(), measurement.getValues().contains("ghi"));
 155  1 assertTrue("\"jkl\" not in " + measurement.getValues(), measurement.getValues().contains("jkl"));
 156    }
 157   
 158  1 public void testCachedValues() throws Exception {
 159  1 descriptor.setInitText("NL");
 160  1 descriptor.setCached(true);
 161   
 162  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 163  1 assertEquals(0, measurement.getValue().intValue());
 164  1 assertTrue(measurement.getValues().isEmpty());
 165   
 166  1 metrics.addSubMetrics(m1);
 167  1 metrics.addSubMetrics(m2);
 168  1 metrics.addSubMetrics(m3);
 169   
 170  1 assertEquals(0, measurement.getValue().intValue());
 171  1 assertTrue(measurement.getValues().isEmpty());
 172    }
 173   
 174  1 public void testSingleFiltered() throws Exception {
 175  1 descriptor.setInitText("NL /a/");
 176   
 177  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 178  1 assertEquals(0, measurement.getValue().intValue());
 179  1 assertTrue(measurement.getValues().isEmpty());
 180   
 181  1 metrics.addSubMetrics(m1);
 182  1 metrics.addSubMetrics(m2);
 183  1 metrics.addSubMetrics(m3);
 184   
 185  1 assertEquals(1, measurement.getValue().intValue());
 186  1 assertTrue("\"abc\" not in " + measurement.getValues(), measurement.getValues().contains("abc"));
 187    }
 188   
 189  1 public void testMultiFilterFiltered() throws Exception {
 190  1 descriptor.setInitText("NL /a/\nNL /k/");
 191   
 192  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 193  1 assertEquals(0, measurement.getValue().intValue());
 194  1 assertTrue(measurement.getValues().isEmpty());
 195   
 196  1 metrics.addSubMetrics(m1);
 197  1 metrics.addSubMetrics(m2);
 198  1 metrics.addSubMetrics(m3);
 199   
 200  1 assertEquals(2, measurement.getValue().intValue());
 201  1 assertTrue("\"abc\" not in " + measurement.getValues(), measurement.getValues().contains("abc"));
 202  1 assertTrue("\"jkl\" not in " + measurement.getValues(), measurement.getValues().contains("jkl"));
 203    }
 204   
 205  1 public void testModifiedValues() throws Exception {
 206  1 descriptor.setInitText("NL /(a)/");
 207   
 208  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 209  1 assertEquals(0, measurement.getValue().intValue());
 210  1 assertTrue(measurement.getValues().isEmpty());
 211   
 212  1 metrics.addSubMetrics(m1);
 213  1 metrics.addSubMetrics(m2);
 214  1 metrics.addSubMetrics(m3);
 215   
 216  1 assertEquals(1, measurement.getValue().intValue());
 217  1 assertTrue("\"a\" not in " + measurement.getValues(), measurement.getValues().contains("a"));
 218    }
 219   
 220  1 public void testMultiMeasurements() throws Exception {
 221  1 descriptor.setInitText("NL /a/\nNbL /2/");
 222   
 223  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 224  1 assertEquals(0, measurement.getValue().intValue());
 225  1 assertTrue(measurement.getValues().isEmpty());
 226   
 227  1 metrics.addSubMetrics(m1);
 228  1 metrics.addSubMetrics(m2);
 229  1 metrics.addSubMetrics(m3);
 230   
 231  1 assertEquals(3, measurement.getValue().intValue());
 232  1 assertTrue("\"abc\" not in " + measurement.getValues(), measurement.getValues().contains("abc"));
 233  1 assertTrue("\"123\" not in " + measurement.getValues(), measurement.getValues().contains("123"));
 234  1 assertTrue("\"248\" not in " + measurement.getValues(), measurement.getValues().contains("248"));
 235    }
 236   
 237  1 public void testAccept() throws Exception {
 238  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 239   
 240  1 visited = null;
 241  1 measurement.accept(this);
 242  1 assertSame(measurement, visited);
 243    }
 244   
 245  1 public void testEmpty() throws Exception {
 246  1 descriptor.setInitText("NL");
 247   
 248  1 measurement = (AccumulatorMeasurement) descriptor.createMeasurement(metrics);
 249  1 metrics.track(nameList.createMeasurement(metrics));
 250   
 251  1 Metrics submetrics = new Metrics("submetrics");
 252  1 submetrics.track(nameList.createMeasurement(submetrics));
 253  1 metrics.addSubMetrics(submetrics);
 254   
 255  1 assertTrue("Before Add()", measurement.isEmpty());
 256   
 257  1 submetrics.addToMeasurement("NL", "foo");
 258   
 259  1 assertFalse("After Add()", measurement.isEmpty());
 260    }
 261   
 262  0 public void visitStatisticalMeasurement(StatisticalMeasurement measurement) {
 263    // Do nothing
 264    }
 265   
 266  0 public void visitRatioMeasurement(RatioMeasurement measurement) {
 267    // Do nothing
 268    }
 269   
 270  0 public void visitNbSubMetricsMeasurement(NbSubMetricsMeasurement measurement) {
 271    // Do nothing
 272    }
 273   
 274  0 public void visitCounterMeasurement(CounterMeasurement measurement) {
 275    // Do nothing
 276    }
 277   
 278  0 public void visitContextAccumulatorMeasurement(ContextAccumulatorMeasurement measurement) {
 279    // Do nothing
 280    }
 281   
 282  0 public void visitNameListMeasurement(NameListMeasurement measurement) {
 283    // Do nothing
 284    }
 285   
 286  1 public void visitSubMetricsAccumulatorMeasurement(SubMetricsAccumulatorMeasurement measurement) {
 287  1 visited = measurement;
 288    }
 289   
 290  0 public void visitSumMeasurement(SumMeasurement measurement) {
 291    // Do nothing
 292    }
 293    }