Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6711ef0

Browse files
committedApr 11, 2021
Added unit test for Haehnchen#1599
1 parent 02f3e6c commit 6711ef0

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed
 

‎src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/util/PhpElementsUtilTest.java

+19-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@
22

33
import com.intellij.psi.PsiElement;
44
import com.intellij.util.containers.ContainerUtil;
5+
import com.jetbrains.php.PhpIndex;
56
import com.jetbrains.php.lang.PhpFileType;
67
import com.jetbrains.php.lang.psi.PhpPsiElementFactory;
78
import com.jetbrains.php.lang.psi.elements.*;
89
import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase;
910
import fr.adrienbrault.idea.symfony2plugin.util.MethodMatcher;
1011
import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil;
1112

12-
import java.util.ArrayList;
13-
import java.util.Arrays;
14-
import java.util.Collection;
15-
import java.util.Collections;
13+
import java.util.*;
1614

1715
/**
1816
* @author Daniel Espendiller <daniel@espendiller.net>
@@ -307,4 +305,21 @@ public void testThatPhpThatStringValueCanBeResolvedViaChainResolve() {
307305
assertContainsElements(PhpElementsUtil.StringResolver.findStringValues(PhpPsiElementFactory.createPhpPsiFromText(getProject(), ParameterList.class, "<?php $var = 'test.html'; foo($var);").getFirstPsiChild()), "test.html");
308306
assertContainsElements(PhpElementsUtil.StringResolver.findStringValues(PhpPsiElementFactory.createPhpPsiFromText(getProject(), TernaryExpression.class, "<?php $var = 'test.html'; $x = true == true ? $var : 'test2.html';")), "test.html", "test2.html");
309307
}
308+
309+
public void testGetImplementedMethodsForRecursiveClassHierarchy() {
310+
myFixture.addFileToProject("First.php", "<?php class First extends Second { public function method() {} }");
311+
myFixture.addFileToProject("Second.php", "<?php class Second extends First { public function method() {} }");
312+
313+
var firstClass = PhpIndex.getInstance(getProject()).getClassByName("First");
314+
var secondClass = PhpIndex.getInstance(getProject()).getClassByName("Second");
315+
316+
var actualResult = PhpElementsUtil.getImplementedMethods(
317+
secondClass.findOwnMethodByName("method")
318+
);
319+
320+
assertEquals(new Method[] {
321+
secondClass.findOwnMethodByName("method"),
322+
firstClass.findOwnMethodByName("method")
323+
}, actualResult);
324+
}
310325
}

0 commit comments

Comments
 (0)
Please sign in to comment.