001: /*
002: * Copyright (c) 2001-2007, Jean Tessier
003: * All rights reserved.
004: *
005: * Redistribution and use in source and binary forms, with or without
006: * modification, are permitted provided that the following conditions
007: * are met:
008: *
009: * * Redistributions of source code must retain the above copyright
010: * notice, this list of conditions and the following disclaimer.
011: *
012: * * Redistributions in binary form must reproduce the above copyright
013: * notice, this list of conditions and the following disclaimer in the
014: * documentation and/or other materials provided with the distribution.
015: *
016: * * Neither the name of Jean Tessier nor the names of his contributors
017: * may be used to endorse or promote products derived from this software
018: * without specific prior written permission.
019: *
020: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
021: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
022: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
023: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
024: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
025: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
026: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
027: * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
028: * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
029: * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
030: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
031: */
032:
033: package com.jeantessier.metrics;
034:
035: import junit.framework.*;
036:
037: public class TestNullMeasurement extends TestCase implements
038: MeasurementVisitor {
039: private NullMeasurement measurement;
040: private Measurement visited;
041:
042: protected void setUp() {
043: measurement = new NullMeasurement();
044: }
045:
046: public void testMeasurementDescriptor() {
047: assertNull(measurement.getDescriptor());
048: assertNull(measurement.getShortName());
049: assertNull(measurement.getLongName());
050: }
051:
052: public void testAdd() {
053: measurement.add(null);
054: measurement.add(new Object());
055: measurement.add(measurement);
056: }
057:
058: public void testEmpty() {
059: assertTrue("Before Add()", measurement.isEmpty());
060:
061: measurement.add(new Object());
062:
063: assertTrue("After Add()", measurement.isEmpty());
064: }
065:
066: public void testAccept() {
067: visited = null;
068: measurement.accept(this );
069: assertNull(visited);
070: }
071:
072: public void visitStatisticalMeasurement(
073: StatisticalMeasurement measurement) {
074: visited = measurement;
075: }
076:
077: public void visitRatioMeasurement(RatioMeasurement measurement) {
078: visited = measurement;
079: }
080:
081: public void visitNbSubMetricsMeasurement(
082: NbSubMetricsMeasurement measurement) {
083: visited = measurement;
084: }
085:
086: public void visitCounterMeasurement(CounterMeasurement measurement) {
087: visited = measurement;
088: }
089:
090: public void visitContextAccumulatorMeasurement(
091: ContextAccumulatorMeasurement measurement) {
092: // Do nothing
093: }
094:
095: public void visitNameListMeasurement(NameListMeasurement measurement) {
096: // Do nothing
097: }
098:
099: public void visitSubMetricsAccumulatorMeasurement(
100: SubMetricsAccumulatorMeasurement measurement) {
101: // Do nothing
102: }
103:
104: public void visitSumMeasurement(SumMeasurement measurement) {
105: visited = measurement;
106: }
107: }
|