mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
More refactoring in UastCallMatcher tests
This commit is contained in:
@@ -6,7 +6,7 @@ public class MyClass {
|
||||
s.concat("1");
|
||||
s.chars();
|
||||
|
||||
java.util.List list = new java.util.ArrayList();
|
||||
java.util.ArrayList list = new java.util.ArrayList();
|
||||
list.addAll(new java.util.ArrayList());
|
||||
}
|
||||
}
|
||||
+4
-82
@@ -2,15 +2,8 @@ package com.intellij.codeInspection;
|
||||
|
||||
import com.intellij.jvm.analysis.JvmAnalysisTestsUtil;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
|
||||
import org.jetbrains.uast.UCallExpression;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import static com.intellij.codeInspection.JvmAnalysisTestsUastUtil.getUElementsOfTypeFromFile;
|
||||
import static com.intellij.codeInspection.UastCallMatcher.builder;
|
||||
|
||||
@TestDataPath("$CONTENT_ROOT/testData/codeInspection/uastCallMatcher")
|
||||
public class UastCallMatcherTest extends UastCallMatcherTestBase {
|
||||
@@ -26,82 +19,11 @@ public class UastCallMatcherTest extends UastCallMatcherTestBase {
|
||||
}
|
||||
|
||||
|
||||
public void testCallExpressions() {
|
||||
doTestCallExpressions("MyClass.java");
|
||||
}
|
||||
|
||||
public void testCallableReferences() {
|
||||
doTestCallableReferences("MethodReferences.java");
|
||||
}
|
||||
|
||||
public void testSimpleMatcher() {
|
||||
PsiFile file = myFixture.configureByFile("MyClass.java");
|
||||
Set<UCallExpression> expressions = getUElementsOfTypeFromFile(file, UCallExpression.class, ce -> ce.getMethodName() != null);
|
||||
assertSize(5, expressions);
|
||||
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("size").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withMethodName("size").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("addAll").withArgumentsCount(1).build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("addAll").withArgumentTypes("java.util.Collection").build(),
|
||||
expressions)
|
||||
);
|
||||
|
||||
assertEquals(4, matchCallExpression(
|
||||
builder().withClassFqn("java.lang.String").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withClassFqn("java.lang.String").withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(3, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").withArgumentsCount(1).build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").withArgumentTypes("java.util.Locale").build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withArgumentsCount(0).build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(3, matchCallExpression(
|
||||
builder().withArgumentsCount(1).build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withArgumentTypes("java.util.Locale").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withArgumentTypes("java.util.Collection").withMatchArgumentTypeInheritors(true).build(),
|
||||
expressions
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
+4
-84
@@ -2,19 +2,12 @@ package com.intellij.codeInspection;
|
||||
|
||||
import com.intellij.jvm.analysis.JvmAnalysisKtTestsUtil;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
|
||||
import kotlin.KotlinVersion;
|
||||
import org.jetbrains.uast.UCallExpression;
|
||||
import org.jetbrains.uast.UastCallKind;
|
||||
import org.junit.Assume;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.intellij.codeInspection.JvmAnalysisTestsUastUtil.getUElementsOfTypeFromFile;
|
||||
import static com.intellij.codeInspection.UastCallMatcher.builder;
|
||||
|
||||
@TestDataPath("$CONTENT_ROOT/testData/codeInspection/uastCallMatcher")
|
||||
public class KtUastCallMatcherTest extends UastCallMatcherTestBase {
|
||||
@@ -39,84 +32,11 @@ public class KtUastCallMatcherTest extends UastCallMatcherTestBase {
|
||||
}
|
||||
|
||||
|
||||
public void testCallExpressions() {
|
||||
doTestCallExpressions("MyClass.kt");
|
||||
}
|
||||
|
||||
public void testCallableReferences() {
|
||||
doTestCallableReferences("MethodReferences.kt");
|
||||
}
|
||||
|
||||
public void testSimpleMatcher() {
|
||||
PsiFile file = myFixture.configureByFile("MyClass.kt");
|
||||
|
||||
Set<UCallExpression> expressions = getUElementsOfTypeFromFile(file, UCallExpression.class,
|
||||
e -> e.getKind() == UastCallKind.METHOD_CALL);
|
||||
assertSize(5, expressions);
|
||||
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("size").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withMethodName("size").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("addAll").withArgumentsCount(1).build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("addAll").withArgumentTypes("java.util.Collection").build(),
|
||||
expressions)
|
||||
);
|
||||
|
||||
assertEquals(4, matchCallExpression(
|
||||
builder().withClassFqn("java.lang.String").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withClassFqn("java.lang.String").withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(3, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").withArgumentsCount(1).build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").withArgumentTypes("java.util.Locale").build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withArgumentsCount(0).build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(3, matchCallExpression(
|
||||
builder().withArgumentsCount(1).build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withArgumentTypes("java.util.Locale").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withArgumentTypes("java.util.Collection").withMatchArgumentTypeInheritors(true).build(),
|
||||
expressions
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
+78
-1
@@ -9,6 +9,7 @@ import com.intellij.util.PathUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.uast.UCallExpression;
|
||||
import org.jetbrains.uast.UCallableReferenceExpression;
|
||||
import org.jetbrains.uast.UastCallKind;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
@@ -31,7 +32,83 @@ public abstract class UastCallMatcherTestBase extends JavaCodeInsightFixtureTest
|
||||
return (int)expressions.stream().filter(matcher::testCallableReferenceExpression).count();
|
||||
}
|
||||
|
||||
// expected matched expressions count are the same for Kotlin and Java tests for callable reference expressions
|
||||
|
||||
protected void doTestCallExpressions(@TestDataFile @NotNull String file) {
|
||||
PsiFile psiFile = myFixture.configureByFile(file);
|
||||
Set<UCallExpression> expressions = getUElementsOfTypeFromFile(psiFile, UCallExpression.class,
|
||||
e -> e.getKind() == UastCallKind.METHOD_CALL);
|
||||
assertSize(5, expressions);
|
||||
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("size").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(0, matchCallExpression(
|
||||
builder().withMethodName("size").build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("addAll").withArgumentsCount(1).build(),
|
||||
expressions)
|
||||
);
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withClassFqn("java.util.ArrayList").withMethodName("addAll").withArgumentTypes("java.util.Collection").build(),
|
||||
expressions)
|
||||
);
|
||||
|
||||
assertEquals(4, matchCallExpression(
|
||||
builder().withClassFqn("java.lang.String").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withClassFqn("java.lang.String").withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(3, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").withArgumentsCount(1).build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withReturnType("java.lang.String").withMethodName("toUpperCase").withArgumentTypes("java.util.Locale").build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(2, matchCallExpression(
|
||||
builder().withArgumentsCount(0).build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(3, matchCallExpression(
|
||||
builder().withArgumentsCount(1).build(),
|
||||
expressions
|
||||
));
|
||||
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withArgumentTypes("java.util.Locale").build(),
|
||||
expressions
|
||||
));
|
||||
assertEquals(1, matchCallExpression(
|
||||
builder().withArgumentTypes("java.util.Collection").withMatchArgumentTypeInheritors(true).build(),
|
||||
expressions
|
||||
));
|
||||
}
|
||||
|
||||
protected void doTestCallableReferences(@TestDataFile @NotNull String file) {
|
||||
PsiFile psiFile = myFixture.configureByFile(file);
|
||||
Set<UCallableReferenceExpression> expressions = getUElementsOfTypeFromFile(psiFile, UCallableReferenceExpression.class);
|
||||
|
||||
Reference in New Issue
Block a user