10
10
import com .intellij .psi .xml .XmlTag ;
11
11
import com .intellij .util .containers .ContainerUtil ;
12
12
import com .jetbrains .php .lang .psi .elements .Parameter ;
13
- import com .jetbrains .php .lang .psi .elements .PhpClass ;
14
13
import com .jetbrains .php .lang .psi .elements .PhpNamedElement ;
15
14
import fr .adrienbrault .idea .symfony2plugin .config .xml .XmlHelper ;
16
15
import fr .adrienbrault .idea .symfony2plugin .tests .SymfonyLightCodeInsightFixtureTestCase ;
16
+ import org .jetbrains .annotations .NotNull ;
17
17
18
18
import java .util .ArrayList ;
19
19
import java .util .Collection ;
20
- import java .util .function .Predicate ;
21
20
import java .util .stream .Collectors ;
22
21
23
22
/**
@@ -178,6 +177,18 @@ public void testGetArgumentIndexOnArgumentCount() {
178
177
assertEquals (1 , XmlHelper .getArgumentIndex ((XmlTag ) psiElement .getParent ()));
179
178
}
180
179
180
+ @ NotNull
181
+ private Collection <String > getClassNamesFromResourceGlob (@ NotNull Collection <XmlTag > xmlTags , @ NotNull String namespace ) {
182
+ XmlTag xmlTag = xmlTags .stream ()
183
+ .filter (xmlTag1 -> namespace .equals (xmlTag1 .getAttributeValue ("namespace" )))
184
+ .findFirst ()
185
+ .orElseThrow ();
186
+
187
+ return XmlHelper .getNamespaceResourcesClasses (xmlTag ).stream ()
188
+ .map (PhpNamedElement ::getFQN )
189
+ .collect (Collectors .toSet ());
190
+ }
191
+
181
192
/**
182
193
* @see XmlHelper#getNamespaceResourcesClasses
183
194
*/
@@ -189,11 +200,31 @@ public void testGetNamespaceResourcesClasses() {
189
200
190
201
Collection <XmlTag > xmlTags = PsiTreeUtil .collectElementsOfType (file , XmlTag .class );
191
202
192
- XmlTag xmlTag = xmlTags .stream ().filter (xmlTag1 -> "prototype" .equals (xmlTag1 .getName ())).findFirst ().orElseThrow ();
193
- Collection <String > namespaceResourcesClasses = XmlHelper .getNamespaceResourcesClasses (xmlTag ).stream ()
194
- .map (PhpNamedElement ::getFQN )
195
- .collect (Collectors .toSet ());
203
+ assertContainsElements (
204
+ getClassNamesFromResourceGlob (xmlTags , "Foo\\ " ),
205
+ "\\ Foo\\ Bar"
206
+ );
207
+ }
208
+
209
+ /**
210
+ * @see XmlHelper#getNamespaceResourcesClasses
211
+ */
212
+ public void testGetNamespaceResourcesClassesWithExclude () {
213
+ myFixture .copyFileToProject ("XmlHelper.php" , "src/XmlHelper.php" );
214
+ VirtualFile service = myFixture .copyFileToProject ("services.xml" , "src/services.xml" );
215
+
216
+ PsiFile file = PsiManager .getInstance (getProject ()).findFile (service );
196
217
197
- assertContainsElements (namespaceResourcesClasses , "\\ Foo\\ Bar" );
218
+ Collection <XmlTag > xmlTags = PsiTreeUtil .collectElementsOfType (file , XmlTag .class );
219
+
220
+ assertDoesntContain (
221
+ getClassNamesFromResourceGlob (xmlTags , "Foo1\\ " ),
222
+ "\\ Foo1\\ Bar"
223
+ );
224
+
225
+ assertDoesntContain (
226
+ getClassNamesFromResourceGlob (xmlTags , "Foo2\\ " ),
227
+ "\\ Foo2\\ Bar"
228
+ );
198
229
}
199
230
}
0 commit comments