package org.projectusus.core.proportions.rawdata.jdtdriver.trainwreck; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import java.util.Map; import org.eclipse.core.resources.IFile; import org.junit.Test; import org.projectusus.core.proportions.rawdata.jdtdriver.JavaFileDriver; import org.projectusus.core.statistics.test.PDETestForMetricsComputation; public class TrainWreck_PDETest extends PDETestForMetricsComputation { @Test public void assumptionsAreValid() throws Exception { project.createFolder( "pde" ); IFile file = createJavaFile( "pde/TrainWreck.java" ); TrainWreckInspector inspector = new TrainWreckInspector(); new JavaFileDriver( file ).compute( createSetWith( inspector ) ); Map<String, String> map = inspector.getMap(); validateEmpty( map.get( "empty" ) ); validateOneMethodCall( map.get( "oneMethodCall" ) ); validateThreeMethods( map.get( "threeMethods" ) ); validateTwoStatements( map.get( "twoStatements" ) ); validateTwoMethodsWithArguments( map.get( "twoMethodsWithArguments" ) ); validateAssignment( map.get( "assignment" ) ); } private void validateEmpty( String invokedNodes ) { assertThat( invokedNodes, is( "" ) ); } private void validateOneMethodCall( String invokedNodes ) { assertThat( invokedNodes, is( "MI a # " ) ); } private void validateThreeMethods( String invokedNodes ) { assertThat( invokedNodes, is( "MI x on MI b on MI a # " ) ); } private void validateTwoStatements( String invokedNodes ) { assertThat( invokedNodes, is( "MI b on MI a # MI y on MI x # " ) ); } private void validateTwoMethodsWithArguments( String invokedNodes ) { assertThat( invokedNodes, is( "MI b on MI a # MI y on MI x # MI w on MI z # " ) ); } private void validateAssignment( String invokedNodes ) { assertThat( invokedNodes, is( "MI b on MI a # MI y on MI x # " ) ); } }