package org.codehaus.mojo.jdepend; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.File; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.codehaus.mojo.jdepend.objects.JDPackage; import org.codehaus.mojo.jdepend.objects.Stats; public class JDependReportParserTest extends TestCase { JDependXMLReportParser parser; List packages; private String basedir = System.getProperty( "basedir" ); public void setUp() throws Exception { File reportXML = new File( basedir, JDependMojoTest.REPORT_PATH ); parser = new JDependXMLReportParser( reportXML ); packages = parser.packages; } public void testTotalNumberPackages() { assertEquals( "Total number of packages is not equal to expected output", 2, parser.packages.size() ); } public void testPackageNames() { ArrayList packageNames = new ArrayList(); for( int i=0; i<packages.size(); i++ ) { JDPackage jdpackage = ( JDPackage ) packages.get( i ); packageNames.add( jdpackage.getPackageName() ); } assertTrue( packageNames.contains( "org.codehaus.mojo.jdepend" ) ); assertTrue( packageNames.contains( "org.codehaus.mojo.jdepend.objects" ) ); } public void testPackageNamesNotContainingInList() { ArrayList packageNames = new ArrayList(); for( int i=0; i<packages.size(); i++ ) { JDPackage jdpackage = ( JDPackage ) packages.get( i ); packageNames.add( jdpackage.getPackageName() ); } assertFalse( packageNames.contains( "test" ) ); assertFalse( packageNames.contains( "test2" ) ); } public void testStats() { for( int i=0; i<packages.size(); i++ ) { JDPackage jdpackage = ( JDPackage ) packages.get( i ); if( jdpackage.getPackageName().equals( "org.codehaus.mojo.jdepend" ) ) { Stats stats = jdpackage.getStats(); assertEquals( "Stats Total Classes is not equal to expected output", "4", stats.getTotalClasses() ); assertEquals( "Stats Concrete classes is not equal to expected output", "4", stats.getConcreteClasses() ); assertEquals( "Stats Abstract Classes is not equal to expected output", "0", stats.getAbstractClasses() ); assertEquals( "0", stats.getCa() ); assertEquals( "14", stats.getCe() ); assertEquals( "0", stats.getA() ); assertEquals( "1", stats.getI() ); assertEquals( "0", stats.getD() ); assertEquals( "1", stats.getV() ); } if( jdpackage.getPackageName().equals( "org.codehaus.mojo.jdepend.objects" ) ) { Stats stats = jdpackage.getStats(); assertEquals( "Stats Total Classes is not equal to expected output", "4", stats.getTotalClasses() ); assertEquals( "Stats Concrete classes is not equal to expected output", "4", stats.getConcreteClasses() ); assertEquals( "Stats Abstract Classes is not equal to expected output", "0", stats.getAbstractClasses() ); assertEquals( "1", stats.getCa() ); assertEquals( "2", stats.getCe() ); assertEquals( "0", stats.getA() ); assertEquals( "0.67", stats.getI() ); assertEquals( "0.33", stats.getD() ); assertEquals( "1", stats.getV() ); } } } public void testConcreteClasses() { for( int i=0; i<packages.size(); i++ ) { JDPackage jdpackage = ( JDPackage ) packages.get( i ); if( jdpackage.getPackageName().equals( "org.codehaus.mojo.jdepend" ) ) { List concretes = jdpackage.getConcreteClasses(); assertTrue( concretes.contains( "org.codehaus.mojo.jdepend.JDependMojo" ) ); assertTrue( concretes.contains( "org.codehaus.mojo.jdepend.JDependXMLReportParser" ) ); assertTrue( concretes.contains( "org.codehaus.mojo.jdepend.ReportGenerator" ) ); } if( jdpackage.getPackageName().equals( "org.codehaus.mojo.jdepend.objects" ) ) { List concretes = jdpackage.getConcreteClasses(); for( int j=0; j<concretes.size(); j++ ) { System.out.println( "============= " + concretes.get( j ).toString() ); } assertTrue( concretes.contains( "org.codehaus.mojo.jdepend.objects.CyclePackage" ) ); assertTrue( concretes.contains( "org.codehaus.mojo.jdepend.objects.JDPackage" ) ); /* Test failure assertTrue( concretes.contains( "org.codehaus.mojo.jdepend.objects.Packages" ) ); */ assertTrue( concretes.contains( "org.codehaus.mojo.jdepend.objects.Stats" ) ); } } } public void testCountOfDependsUpon() { int count = 0; for( int i=0; i<packages.size(); i++ ) { JDPackage jdpackage = ( JDPackage ) packages.get( i ); if( jdpackage.getPackageName().equals( "org.codehaus.mojo.jdepend" ) ) { count = jdpackage.getDependsUpon().size(); assertEquals( 14, count ); } if( jdpackage.getPackageName().equals( "org.codehaus.mojo.jdepend.objects" ) ) { count = jdpackage.getDependsUpon().size(); assertEquals( 2, count ); } } } }