package com.siberika.idea.pascal.util;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
import com.siberika.idea.pascal.lang.psi.PascalNamedElement;
import com.siberika.idea.pascal.lang.psi.impl.PascalModuleImpl;
import com.siberika.idea.pascal.lang.references.PasReferenceUtil;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class PsiUtilTest extends LightPlatformCodeInsightFixtureTestCase {
@Override
protected String getTestDataPath() {
return "testData/util";
}
public void testIsAssignLeftPart() {
myFixture.configureByFiles("psiUtilTest.pas");
Map<String, PascalNamedElement> named = collectNamed("psiUtilTest");
assertTrue(PsiUtil.isAssignLeftPart(named.get("AssignLeftPart")));
assertFalse(PsiUtil.isAssignLeftPart(named.get("AssignRightPart")));
}
private Map<String, PascalNamedElement> collectNamed(String unitName) {
PascalModuleImpl mod = (PascalModuleImpl) PasReferenceUtil.findUnit(myFixture.getProject(),
PasReferenceUtil.findUnitFiles(myFixture.getProject(), myModule), unitName);
Collection<PascalNamedElement> named = PsiTreeUtil.findChildrenOfType(mod, PascalNamedElement.class);
Map<String, PascalNamedElement> res = new HashMap<String, PascalNamedElement>();
for (PascalNamedElement element : named) {
res.put(element.getName(), element);
}
return res;
}
}