package fr.adrienbrault.idea.symfony2plugin.tests.stubs.indexes; import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.ServicesTagStubIndex; import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase; import org.jetbrains.annotations.NotNull; import java.io.File; import java.util.Set; /** * @author Daniel Espendiller <daniel@espendiller.net> * * @see fr.adrienbrault.idea.symfony2plugin.stubs.indexes.ServicesTagStubIndex */ public class ServicesTagStubIndexTest extends SymfonyLightCodeInsightFixtureTestCase { public void setUp() throws Exception { super.setUp(); myFixture.configureFromExistingVirtualFile(myFixture.copyFileToProject("tagged.services.xml")); myFixture.configureFromExistingVirtualFile(myFixture.copyFileToProject("tagged.services.yml")); } public String getTestDataPath() { return new File(this.getClass().getResource("fixtures").getFile()).getAbsolutePath(); } public void testTaggedServiceInIndex() { assertIndexContains(ServicesTagStubIndex.KEY, "foo.tagged.xml_type", "foo.tagged.yaml_type"); } public void testTaggedServiceValueInIndex() { assertIndexContainsKeyWithValue(ServicesTagStubIndex.KEY, "foo.tagged.xml_type", new MyStringContainsAssert("xml_type_tag")); assertIndexContainsKeyWithValue(ServicesTagStubIndex.KEY, "foo.tagged.yaml_type", new MyStringContainsAssert("yaml_type_tag")); assertIndexContainsKeyWithValue(ServicesTagStubIndex.KEY, "foo.tagged.yaml_type2", new MyStringContainsAssert("yaml_type_tag2")); assertIndexContainsKeyWithValue(ServicesTagStubIndex.KEY, "foo.tagged.yaml_type3", new MyStringContainsAssert("yaml_type_tag3")); } private static class MyStringContainsAssert implements IndexValue.Assert<Set<String>> { @NotNull private final String find; public MyStringContainsAssert(@NotNull String find) { this.find = find; } @Override public boolean match(@NotNull Set<String> value) { return value.contains(this.find); } } }