KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jeantessier > metrics > TestMetricsGathererSLOC


1 /*
2  * Copyright (c) 2001-2005, 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 import java.io.*;
38 import java.util.*;
39
40 import org.apache.log4j.*;
41
42 import org.xml.sax.*;
43
44 import com.jeantessier.classreader.*;
45
46 public class TestMetricsGathererSLOC extends TestCase {
47     public static final String JavaDoc TEST_DIRNAME = "classes" + File.separator + "sloc";
48
49     private MetricsFactory factory;
50     
51     protected void setUp() throws Exception JavaDoc {
52         Logger.getLogger(getClass()).debug("Starting " + getName() + " ...");
53         
54         factory = new MetricsFactory("test", new MetricsConfigurationLoader(Boolean.getBoolean("DEPENDENCYFINDER_TESTS_VALIDATE")).load("etc" + File.separator + "MetricsConfig.xml"));
55
56         ClassfileLoader loader =new AggregatingClassfileLoader();
57         loader.load(Collections.singleton(TEST_DIRNAME));
58
59         MetricsGatherer gatherer = new MetricsGatherer("test", factory);
60         
61         Iterator i = loader.getAllClassfiles().iterator();
62         while (i.hasNext()) {
63             ((Classfile) i.next()).accept(gatherer);
64         }
65     }
66
67     protected void tearDown() throws Exception JavaDoc {
68         Logger.getLogger(getClass()).debug("Done with " + getName() + " ...");
69     }
70     
71     public void test_sloc_TestInterface() {
72         assertEquals(Metrics.SLOC, 3, factory.createClassMetrics("sloc.TestInterface").getMeasurement(Metrics.SLOC).intValue());
73         assertEquals("M", 2, factory.createClassMetrics("sloc.TestInterface").getMeasurement("M").intValue());
74         assertEquals("AM", 2, factory.createClassMetrics("sloc.TestInterface").getMeasurement("AM").intValue());
75         assertEquals("SynthM", 0, factory.createClassMetrics("sloc.TestInterface").getMeasurement("SynthM").intValue());
76     }
77     
78     public void test_sloc_TestInterface_method1() {
79         assertEquals(Metrics.SLOC, 1, factory.createMethodMetrics("sloc.TestInterface.method1()").getMeasurement(Metrics.SLOC).intValue());
80     }
81     
82     public void test_sloc_TestInterface_method2() {
83         assertEquals(Metrics.SLOC, 1, factory.createMethodMetrics("sloc.TestInterface.method2()").getMeasurement(Metrics.SLOC).intValue());
84     }
85     
86     public void test_sloc_TestAbstractClass() {
87         assertEquals(Metrics.SLOC, 15, factory.createClassMetrics("sloc.TestAbstractClass").getMeasurement(Metrics.SLOC).intValue());
88         assertEquals("M", 2, factory.createClassMetrics("sloc.TestAbstractClass").getMeasurement("M").intValue());
89         assertEquals("AM", 0, factory.createClassMetrics("sloc.TestAbstractClass").getMeasurement("AM").intValue());
90         assertEquals("SynthM", 0, factory.createClassMetrics("sloc.TestAbstractClass").getMeasurement("SynthM").intValue());
91     }
92     
93     public void test_sloc_TestAbstractClass_method1() {
94         assertEquals(Metrics.SLOC, 13, factory.createMethodMetrics("sloc.TestAbstractClass.method1()").getMeasurement(Metrics.SLOC).intValue());
95     }
96     
97     public void test_sloc_TestAbstractClass_method2() {
98         assertEquals(Metrics.SLOC, 0, factory.createMethodMetrics("sloc.TestAbstractClass.method2()").getMeasurement(Metrics.SLOC).intValue());
99     }
100     
101     public void test_sloc_TestSuperClass() {
102         assertEquals(Metrics.SLOC, 2, factory.createClassMetrics("sloc.TestSuperClass").getMeasurement(Metrics.SLOC).intValue());
103         assertEquals("M", 1, factory.createClassMetrics("sloc.TestSuperClass").getMeasurement("M").intValue());
104         assertEquals("ABSM", 0, factory.createClassMetrics("sloc.TestSuperClass").getMeasurement("ABSM").intValue());
105         assertEquals("SYNTHM", 0, factory.createClassMetrics("sloc.TestSuperClass").getMeasurement("SYNTHM").intValue());
106     }
107     
108     public void test_sloc_TestClass() {
109         assertEquals(Metrics.SLOC, 4, factory.createClassMetrics("sloc.TestClass").getMeasurement(Metrics.SLOC).intValue());
110         assertEquals("M", 2, factory.createClassMetrics("sloc.TestClass").getMeasurement("M").intValue());
111         assertEquals("ABSM", 0, factory.createClassMetrics("sloc.TestClass").getMeasurement("ABSM").intValue());
112         assertEquals("SYNTHM", 0, factory.createClassMetrics("sloc.TestClass").getMeasurement("SYNTHM").intValue());
113     }
114     
115     public void test_sloc_TestClass_method1() {
116         assertEquals(Metrics.SLOC, 0, factory.createMethodMetrics("sloc.TestClass.method1()").getMeasurement(Metrics.SLOC).intValue());
117     }
118     
119     public void test_sloc_TestClass_method2() {
120         assertEquals(Metrics.SLOC, 2, factory.createMethodMetrics("sloc.TestClass.method2()").getMeasurement(Metrics.SLOC).intValue());
121     }
122
123     public void test_sloc() {
124         assertEquals(Metrics.SLOC, 24, factory.createGroupMetrics("sloc").getMeasurement(Metrics.SLOC).intValue());
125     }
126
127     public void testProject() {
128         assertEquals(Metrics.SLOC, 24, factory.createProjectMetrics("test").getMeasurement(Metrics.SLOC).intValue());
129     }
130 }
131
Popular Tags