java.lang.ClassCastException: org.eclipse.jdt.core.dom.PackageBinding cannot be cast to org.eclipse.jdt.core.dom.ITypeBinding
at org.ita.neutrino.astparser.SourceFileParser$ImportVisitor.visit(SourceFileParser.java:44)
at org.eclipse.jdt.core.dom.ImportDeclaration.accept0(ImportDeclaration.java:220)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:218)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
at org.ita.neutrino.astparser.SourceFileParser.populateImportList(SourceFileParser.java:176)
at org.ita.neutrino.astparser.SourceFileParser.parse(SourceFileParser.java:166)
at org.ita.neutrino.astparser.ASTParser.parseAllSourceFilesInWorkspace(ASTParser.java:118)
at org.ita.neutrino.astparser.ASTParser.parse(ASTParser.java:72)
at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.getParsedCode(EclipseTestSmellDetector.java:89)
at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.run(EclipseTestSmellDetector.java:61)
at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.run(EclipseTestSmellDetector.java:51)
at org.ita.neutrino.testsmells.ActionController.runDetection(ActionController.java:51)
at org.ita.neutrino.testsmells.ActionController.run(ActionController.java:42)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
public class TesteCarro {
private Carro[] carro;
@Before
public void criaReferencia(){
carro = new Carro[3];
carro[0]= new Carro("delta", 200 , 400);
carro[1]= new Carro("A", -2 , -4 );
carro[2]= new Carro("A", 500 , 900.3);
}
@Test
public void testeConstrutor(){
verificaCondIniciais();
}
@Test
private void verificaCondIniciais() {
assertTrue("lala",carro[0].getVelocidade() == 0);
assertTrue(carro[0].getPotencia() == 400);
assertTrue(carro[0].getVelocMax() == 200);
assertTrue(carro[0].getApelido().equals("delta"));
assertTrue(carro[0].getAceleracao() == 0.1_carro[0].getPotencia());
assertTrue(carro[0].getPorcent()== 0.7);
assertTrue(carro[0].getReducao()== 0.5);
}
@Test
public void testaconstrutor2(){
assertTrue ("Em caso de valor invalido a potencia default é 1", carro[1].getPotencia() == 1);
assertTrue("Em caso de valor invalido a velocidade maxima default é 3", carro[1].getVelocMax() == 3);
carro[1].setPorcent(9);
carro[1].setReducao(-1);
assertTrue("Em caso de setar valor invalido, porcent deve continuar com 0.7, default", carro[1].getPorcent()== 0.7);
assertTrue("Valor invalido de reducao, permanece o valor de default: 0.5", carro[1].getReducao()== 0.5);
carro[1].setPorcent(0.8);
carro[1].setReducao(0.3);
assertTrue("Testando se o valor 0.8 foi setado corretamente", carro[1].getPorcent() == 0.8);
assertTrue("Testando se o valor 0.3 foi setado corretamente para a variavel reducao", carro[1].getReducao() == 0.3);
}
@Test
public void testaAlgoritmoVeloc(){
while (carro[2].getVelocidade()< carro[2].getVelocMax()_carro[2].getPorcent()){
carro[2].acelerar();
}
assertTrue("Verificando se a velocidade fica igual a porcent_velocidade, antes de ficar maior",
carro[2].getVelocidade() == carro[2].getVelocMax()_carro[2].getPorcent());
assertTrue("Verificando se a aceleracao mudou para a reduzida, apos atingir porcent_velocidade"
, carro[2].getAceleracao()== carro[2].getPotencia()_0.1*carro[2].getReducao());
for(int i =0 ; i < 50; i++){
carro[2].acelerar();
}
assertTrue("Testando se a velocidade nao ultrapassou a maxima, mesmo apos varias chamadas do metodo acelerar"
, carro[2].getVelocidade() == carro[2].getVelocMax());
}
@Test
public void testaAlgoritmoFrear(){
int i = 0;
double aux;
carro[2].frear();
assertTrue("Verificando se a velocidade nao fica menor que zero quando freia", carro[2].getVelocidade() == 0);
carro[2].acelerar();
carro[2].acelerar();
for(i =0 ; i < 3; i++){
carro[2].frear();
}
assertTrue("Velocidade minima é zero", carro[2].getVelocidade() == 0);
for(i =0 ; i < 3; i++){
carro[2].acelerar();
}
aux = carro[2].getVelocidade();
carro[2].frear();
assertTrue("Testando algoritmo pra frear numa situacao normal", carro[2].getVelocidade() == aux - carro[2].getAceleracao());
}
Deu esse erro:
java.lang.ClassCastException: org.eclipse.jdt.core.dom.PackageBinding cannot be cast to org.eclipse.jdt.core.dom.ITypeBinding at org.ita.neutrino.astparser.SourceFileParser$ImportVisitor.visit(SourceFileParser.java:44) at org.eclipse.jdt.core.dom.ImportDeclaration.accept0(ImportDeclaration.java:220) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:218) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.ita.neutrino.astparser.SourceFileParser.populateImportList(SourceFileParser.java:176) at org.ita.neutrino.astparser.SourceFileParser.parse(SourceFileParser.java:166) at org.ita.neutrino.astparser.ASTParser.parseAllSourceFilesInWorkspace(ASTParser.java:118) at org.ita.neutrino.astparser.ASTParser.parse(ASTParser.java:72) at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.getParsedCode(EclipseTestSmellDetector.java:89) at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.run(EclipseTestSmellDetector.java:61) at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.run(EclipseTestSmellDetector.java:51) at org.ita.neutrino.testsmells.ActionController.runDetection(ActionController.java:51) at org.ita.neutrino.testsmells.ActionController.run(ActionController.java:42) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Com esse código:
import org.junit.; import static org.junit.Assert.;
public class TesteCarro { private Carro[] carro; @Before public void criaReferencia(){ carro = new Carro[3]; carro[0]= new Carro("delta", 200 , 400); carro[1]= new Carro("A", -2 , -4 ); carro[2]= new Carro("A", 500 , 900.3); } @Test public void testeConstrutor(){
verificaCondIniciais(); } @Test private void verificaCondIniciais() { assertTrue("lala",carro[0].getVelocidade() == 0); assertTrue(carro[0].getPotencia() == 400); assertTrue(carro[0].getVelocMax() == 200); assertTrue(carro[0].getApelido().equals("delta")); assertTrue(carro[0].getAceleracao() == 0.1_carro[0].getPotencia()); assertTrue(carro[0].getPorcent()== 0.7); assertTrue(carro[0].getReducao()== 0.5); } @Test public void testaconstrutor2(){
assertTrue ("Em caso de valor invalido a potencia default é 1", carro[1].getPotencia() == 1); assertTrue("Em caso de valor invalido a velocidade maxima default é 3", carro[1].getVelocMax() == 3); carro[1].setPorcent(9); carro[1].setReducao(-1); assertTrue("Em caso de setar valor invalido, porcent deve continuar com 0.7, default", carro[1].getPorcent()== 0.7); assertTrue("Valor invalido de reducao, permanece o valor de default: 0.5", carro[1].getReducao()== 0.5); carro[1].setPorcent(0.8); carro[1].setReducao(0.3); assertTrue("Testando se o valor 0.8 foi setado corretamente", carro[1].getPorcent() == 0.8); assertTrue("Testando se o valor 0.3 foi setado corretamente para a variavel reducao", carro[1].getReducao() == 0.3); } @Test public void testaAlgoritmoVeloc(){
while (carro[2].getVelocidade()< carro[2].getVelocMax()_carro[2].getPorcent()){ carro[2].acelerar(); } assertTrue("Verificando se a velocidade fica igual a porcent_velocidade, antes de ficar maior", carro[2].getVelocidade() == carro[2].getVelocMax()_carro[2].getPorcent()); assertTrue("Verificando se a aceleracao mudou para a reduzida, apos atingir porcent_velocidade" , carro[2].getAceleracao()== carro[2].getPotencia()_0.1*carro[2].getReducao()); for(int i =0 ; i < 50; i++){ carro[2].acelerar(); } assertTrue("Testando se a velocidade nao ultrapassou a maxima, mesmo apos varias chamadas do metodo acelerar" , carro[2].getVelocidade() == carro[2].getVelocMax()); } @Test public void testaAlgoritmoFrear(){
}