package org.projectusus.core.statistics.test; import static org.junit.Assert.assertEquals; import static org.projectusus.core.statistics.UsusModelProvider.ususModelForAdapter; import org.junit.Before; import org.junit.Test; import org.projectusus.core.basis.JavaModelPath; import org.projectusus.core.statistics.UsusModelProvider; import org.projectusus.core.statistics.visitors.ClassCountVisitor; import org.projectusus.core.statistics.visitors.MethodCountVisitor; import org.projectusus.metrics.util.ClassSizeVisitor; import org.projectusus.metrics.util.CyclomaticComplexityVisitor; import org.projectusus.metrics.util.MethodLengthVisitor; public class DropRawDataPDETest extends PDETestForMetricsComputation { @Before public void setup() { UsusModelProvider.clear(); } @Test public void dropProjectWithFile1() throws Exception { computeFile1AndCheckPreconditions(); ususModelForAdapter().dropRawData( project.get() ); checkProjectRawDataIsEmpty(); } @Test public void dropProjectWithFiles2() throws Exception { computeFiles2AndCheckPreconditions(); ususModelForAdapter().dropRawData( project.get() ); checkProjectRawDataIsEmpty(); } private void checkProjectRawDataIsEmpty() { assertEquals( 0, getNumberOfClassesInProject() ); assertEquals( 0, getNumberOfMethodsInProject() ); assertEquals( 0, getClassSizeSum() ); assertEquals( 0, getMethodLengthSum() ); assertEquals( 0, getCCSum() ); assertEquals( 0, getNumberOfClasses() ); } private int getCCSum() { CyclomaticComplexityVisitor r = new CyclomaticComplexityVisitor(); r.visit(); return r.getCC(); } private int getMethodLengthSum() { MethodLengthVisitor r = new MethodLengthVisitor(); r.visit(); return r.getML(); } private int getClassSizeSum() { ClassSizeVisitor r = new ClassSizeVisitor(); r.visit(); return r.getClassSizeSum(); } private void computeFile1AndCheckPreconditions() throws Exception { createFileAndBuild( "Reset1" ); assertEquals( 1, getNumberOfClasses() ); assertEquals( 1, getNumberOfClassesInProject() ); assertEquals( 2, getNumberOfMethodsInProject() ); assertEquals( 2, getClassSizeSum() ); assertEquals( 22, getMethodLengthSum() ); assertEquals( 8, getCCSum() ); } private void computeFiles2AndCheckPreconditions() throws Exception { createFile( "Reset2" ); createFileAndBuild( "Reset1" ); assertEquals( 2, getNumberOfClasses() ); assertEquals( 2, getNumberOfClassesInProject() ); assertEquals( 3, getNumberOfMethodsInProject() ); assertEquals( 3, getClassSizeSum() ); assertEquals( 23, getMethodLengthSum() ); assertEquals( 9, getCCSum() ); } private int getNumberOfMethodsInProject() { return new MethodCountVisitor( new JavaModelPath( project.get() ) ).visitAndReturn().getMethodCount(); } private int getNumberOfClassesInProject() { return new ClassCountVisitor( new JavaModelPath( project.get() ) ).visitAndReturn().getClassCount(); } }