diff --git a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java index db8b96e177d..5721499eeb1 100644 --- a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java +++ b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java @@ -267,15 +267,8 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT List caretElementClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// PSI_ELEMENT: "); assert caretElementClassNames.size() == 1; //noinspection unchecked - Class caretElementClass = (Class)Class.forName(caretElementClassNames.get(0)); - List filteringRuleClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// FILTERING_RULES: "); - Collection filters = new ArrayList(); - for (String filteringRuleClassName : filteringRuleClassNames) { - //noinspection unchecked - Class klass = (Class) Class.forName(filteringRuleClassName); - filters.add(klass.newInstance()); - } + Class caretElementClass = (Class)Class.forName(caretElementClassNames.get(0)); OptionsParser parser = OptionsParser.getParserByPsiElementClass(caretElementClass); @@ -293,6 +286,7 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT } } ); + assert extraFiles != null; for (File file : extraFiles) { myFixture.configureByFile(rootPath + file.getName()); @@ -305,7 +299,9 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT FindUsagesOptions options = parser != null ? parser.parse(mainFileText, getProject()) : null; Collection usageInfos = findUsages(caretElement, options); - Collection filteredUsages = getUsageAdapters(filters, usageInfos); + Collection filteredUsages = getUsageAdapters( + getTestFilteringRules(mainFileText, "// FILTERING_RULES: "), + usageInfos); Function convertToString = new Function() { @Override @@ -382,4 +378,18 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT return UsageType.UNCLASSIFIED; } + + private static Collection getTestFilteringRules(String mainFileText, String directive) + throws ClassNotFoundException, InstantiationException, IllegalAccessException { + List filteringRuleClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, directive); + + Collection filters = new ArrayList(); + for (String filteringRuleClassName : filteringRuleClassNames) { + //noinspection unchecked + Class klass = (Class) Class.forName(filteringRuleClassName); + filters.add(klass.newInstance()); + } + + return filters; + } }