From 21414754cd625a006dae024b3842917525808278 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Thu, 17 Aug 2017 20:56:50 +0200 Subject: [PATCH] test for indexing anonymous class in libraries --- .../navigation/MyInterfaceLibrary.jar | Bin 0 -> 3227 bytes .../GotoImplementationHandlerTest.java | 51 ++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/navigation/MyInterfaceLibrary.jar diff --git a/java/java-tests/testData/codeInsight/navigation/MyInterfaceLibrary.jar b/java/java-tests/testData/codeInsight/navigation/MyInterfaceLibrary.jar new file mode 100644 index 0000000000000000000000000000000000000000..5b1572473c034bb9e244c2261d07478483917e39 GIT binary patch literal 3227 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 {\n" + + " @Override\n" + + " public void doIt() {}\n" + + "}\n"); + + myFixture.configureFromExistingVirtualFile(psiFile.getVirtualFile()); + + PsiClass implementation = myFixture.findClass("MyInterfaceImplementation"); + assertNotNull(implementation); + PsiClass[] supers = implementation.getSupers(); + assertTrue(supers.length == 2 && "com.company.MyInterface".equalsIgnoreCase(supers[1].getQualifiedName())); + + PsiElement[] targets = getTargets(psiFile); + assertSize(5, targets); + + List names = ContainerUtil.map(targets, element -> ((PsiClass)element).getName()); + + assertContainsElements(names, "1"); + assertContainsElements(names, "2"); + assertContainsElements(names, "MyLocalClassImplementation"); + assertContainsElements(names, "MyLocalClassImplementationInInner"); + assertContainsElements(names, "MyInterfaceImplementation"); + + /* // todo + implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementation"); + assertNull(implementation); + implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementationInInner"); + assertNull(implementation); + + implementation = myFixture.getJavaFacade().findClass("1"); + assertNull(implementation); + + implementation = myFixture.getJavaFacade().findClass("2"); + assertNull(implementation); + */ + } + private PsiElement[] getTargets(PsiFile file) { GotoTargetHandler.GotoData gotoData = CodeInsightTestUtil.gotoImplementation(myFixture.getEditor(), file); assertNotNull(gotoData);