diff options
author | Tor Norbye <tnorbye@google.com> | 2014-09-04 20:44:00 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-09-04 20:44:01 +0000 |
commit | fb5a02906f644d044eb0286bf27d413ba0e05216 (patch) | |
tree | bca7d49005d81d10c70bc3f547df041c636b4300 /java/java-impl/src/com/intellij/testIntegration/createTest/JavaTestGenerator.java | |
parent | 9cde0e3c015174898df8b8f3672185941fad4786 (diff) | |
parent | d245f58efbfc26b13b9b9d5e52e6a83a0d76216c (diff) | |
download | idea-fb5a02906f644d044eb0286bf27d413ba0e05216.tar.gz |
Merge "Merge remote-tracking branch 'aosp/upstream-master' into merge"
Diffstat (limited to 'java/java-impl/src/com/intellij/testIntegration/createTest/JavaTestGenerator.java')
-rw-r--r-- | java/java-impl/src/com/intellij/testIntegration/createTest/JavaTestGenerator.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/java/java-impl/src/com/intellij/testIntegration/createTest/JavaTestGenerator.java b/java/java-impl/src/com/intellij/testIntegration/createTest/JavaTestGenerator.java index abde9233f535..fd96a06d6cd4 100644 --- a/java/java-impl/src/com/intellij/testIntegration/createTest/JavaTestGenerator.java +++ b/java/java-impl/src/com/intellij/testIntegration/createTest/JavaTestGenerator.java @@ -28,6 +28,7 @@ import com.intellij.openapi.editor.Editor; import com.intellij.openapi.fileEditor.ex.IdeDocumentHistory; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; +import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; @@ -63,12 +64,17 @@ public class JavaTestGenerator implements TestGenerator { if (targetClass == null) { return null; } - addSuperClass(targetClass, project, d.getSuperClassName()); + final TestFramework frameworkDescriptor = d.getSelectedTestFrameworkDescriptor(); + final String defaultSuperClass = frameworkDescriptor.getDefaultSuperClass(); + final String superClassName = d.getSuperClassName(); + if (!Comparing.strEqual(superClassName, defaultSuperClass)) { + addSuperClass(targetClass, project, superClassName); + } Editor editor = CodeInsightUtil.positionCursor(project, targetClass.getContainingFile(), targetClass.getLBrace()); addTestMethods(editor, targetClass, - d.getSelectedTestFrameworkDescriptor(), + frameworkDescriptor, d.getSelectedMethods(), d.shouldGeneratedBefore(), d.shouldGeneratedAfter()); @@ -135,7 +141,7 @@ public class JavaTestGenerator implements TestGenerator { private static void addSuperClass(PsiClass targetClass, Project project, String superClassName) throws IncorrectOperationException { if (superClassName == null) return; final PsiReferenceList extendsList = targetClass.getExtendsList(); - if (extendsList == null || extendsList.getReferencedTypes().length > 0) return; + if (extendsList == null) return; PsiElementFactory ef = JavaPsiFacade.getInstance(project).getElementFactory(); PsiJavaCodeReferenceElement superClassRef; @@ -147,7 +153,12 @@ public class JavaTestGenerator implements TestGenerator { else { superClassRef = ef.createFQClassNameReferenceElement(superClassName, GlobalSearchScope.allScope(project)); } - extendsList.add(superClassRef); + final PsiJavaCodeReferenceElement[] referenceElements = extendsList.getReferenceElements(); + if (referenceElements.length == 0) { + extendsList.add(superClassRef); + } else { + referenceElements[0].replace(superClassRef); + } } @Nullable |