2
2
3
3
import com .google .gson .Gson ;
4
4
import com .intellij .openapi .util .Condition ;
5
+ import com .intellij .psi .PsiElement ;
5
6
import com .intellij .psi .PsiFile ;
6
7
import com .intellij .util .containers .ContainerUtil ;
7
8
import fr .adrienbrault .idea .symfony2plugin .dic .container .ServiceInterface ;
8
9
import fr .adrienbrault .idea .symfony2plugin .dic .container .ServiceSerializable ;
10
+ import fr .adrienbrault .idea .symfony2plugin .dic .container .dict .ServiceTypeHint ;
9
11
import fr .adrienbrault .idea .symfony2plugin .dic .container .util .ServiceContainerUtil ;
12
+ import fr .adrienbrault .idea .symfony2plugin .stubs .ContainerCollectionResolver ;
10
13
import fr .adrienbrault .idea .symfony2plugin .tests .SymfonyLightCodeInsightFixtureTestCase ;
11
14
import org .jetbrains .annotations .NotNull ;
15
+ import org .jetbrains .yaml .psi .YAMLScalar ;
12
16
13
17
import java .io .File ;
14
18
import java .util .Arrays ;
@@ -32,6 +36,8 @@ public void setUp() throws Exception {
32
36
33
37
myFixture .configureByFile ("usage.services.xml" );
34
38
myFixture .configureByFile ("usage1.services.xml" );
39
+
40
+ myFixture .configureByFile ("classes.php" );
35
41
}
36
42
37
43
public String getTestDataPath () {
@@ -199,6 +205,29 @@ public void testXmlFileScopeDefaultsForSymfony33() {
199
205
assertTrue (defaultsOverwrite .isPublic ());
200
206
}
201
207
208
+ /**
209
+ * @see fr.adrienbrault.idea.symfony2plugin.dic.container.util.ServiceContainerUtil#getYamlConstructorTypeHint
210
+ */
211
+ public void testGetYamlConstructorTypeHint () {
212
+ myFixture .configureByText ("test.yml" , "" +
213
+ "services:\n " +
214
+ " NamedArgument\\ Foobar:\n " +
215
+ " arguments: ['<caret>']\n "
216
+ );
217
+
218
+ PsiElement psiElement = myFixture .getFile ().findElementAt (myFixture .getCaretOffset ());
219
+
220
+ YAMLScalar parent = (YAMLScalar ) psiElement .getParent ();
221
+
222
+ ServiceTypeHint typeHint = ServiceContainerUtil .getYamlConstructorTypeHint (
223
+ parent ,
224
+ new ContainerCollectionResolver .LazyServiceCollector (getProject ())
225
+ );
226
+
227
+ assertEquals (0 , typeHint .getIndex ());
228
+ assertEquals ("__construct" , typeHint .getMethod ().getName ());
229
+ }
230
+
202
231
private static class MyStringServiceInterfaceCondition implements Condition <ServiceInterface > {
203
232
204
233
@ NotNull
0 commit comments