package fr.adrienbrault.idea.symfony2plugin.tests.doctrine.metadata;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.patterns.PlatformPatterns;
import com.jetbrains.php.lang.psi.elements.PhpClass;
import fr.adrienbrault.idea.symfony2plugin.doctrine.metadata.DoctrineMetadataPattern;
import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase;
import org.jetbrains.yaml.YAMLFileType;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
* @see fr.adrienbrault.idea.symfony2plugin.doctrine.metadata.DoctrineYamlGotoCompletionRegistrar
*/
public class DoctrineYamlGotoCompletionRegistrarTest extends SymfonyLightCodeInsightFixtureTestCase {
public void setUp() throws Exception {
super.setUp();
myFixture.configureFromExistingVirtualFile(myFixture.copyFileToProject("classes.php"));
}
public String getTestDataPath() {
return new File(this.getClass().getResource("fixtures").getFile()).getAbsolutePath();
}
public void testRepositoryClass() {
Collection<String[]> providers = new ArrayList<String[]>() {{
add(new String[] {"orm", "repositoryClass"});
add(new String[] {"odm", "repositoryClass"});
add(new String[] {"couchdb", "repositoryClass"});
add(new String[] {"mongodb", "repositoryClass"});
}};
for (String[] provider : providers) {
assertNavigationMatch(
String.format("foo.%s.yml", provider[0]),
String.format("Foo\\Bar\\Ns\\Bar:\n %s: Bar<caret>Repo", provider[1]),
PlatformPatterns.psiElement(PhpClass.class)
);
assertNavigationMatch(
String.format("foo.%s.yml", provider[0]),
String.format("Foo\\Bar\\Ns\\Bar:\n %s: Foo\\Bar\\N<caret>s\\BarRepo", provider[1]),
PlatformPatterns.psiElement(PhpClass.class)
);
assertCompletionContains(
String.format("foo.%s.yml", provider[0]),
String.format("Foo\\Bar\\Ns\\Bar:\n %s: <caret>", provider[1]),
"Foo\\Bar\\Ns\\BarRepo"
);
}
}
}