From c74c6ce610076a4cb88de3bc143c97844e4c79bf Mon Sep 17 00:00:00 2001 From: Sheng Chen Date: Mon, 24 May 2021 13:01:50 +0800 Subject: [PATCH 1/2] fix: Can generate tests from interface and record --- .../java/test/plugin/util/TestGenerationUtils.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java b/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java index f2c2c9bb..0f94e10e 100644 --- a/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java +++ b/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java @@ -126,7 +126,7 @@ public static WorkspaceEdit generateTests(List arguments, IProgressMonit ASTNode coveringNode = nodeFinder.getCoveringNode(); while (coveringNode != null) { - if (coveringNode instanceof TypeDeclaration) { + if (coveringNode instanceof AbstractTypeDeclaration) { break; } coveringNode = coveringNode.getParent(); @@ -139,20 +139,20 @@ public static WorkspaceEdit generateTests(List arguments, IProgressMonit coveringNode = root.findDeclaringNode(primaryType.getKey()); } - if (!(coveringNode instanceof TypeDeclaration)) { + if (!(coveringNode instanceof AbstractTypeDeclaration)) { JUnitPlugin.logError("Failed to find type declaration from " + unit.getElementName()); return null; } - final ITypeBinding binding = ((TypeDeclaration) coveringNode).resolveBinding(); + final ITypeBinding binding = ((AbstractTypeDeclaration) coveringNode).resolveBinding(); if (binding == null) { JUnitPlugin.logError("Failed to resolve type binding from " + unit.getElementName()); return null; } - if (!binding.isClass()) { + if (!(binding.isClass() || binding.isInterface() || binding.isRecord())) { JavaLanguageServerPlugin.getInstance().getClientConnection().showNotificationMessage(MessageType.Error, - "Cannot generate tests if it's not a Java class."); + "Cannot generate tests if it's not a Java class/interface/record."); return null; } From eb0b28d7ef78c90ca1642b0a5a28cccebfee7ba5 Mon Sep 17 00:00:00 2001 From: Sheng Chen Date: Mon, 24 May 2021 16:27:26 +0800 Subject: [PATCH 2/2] Can generate tests for enum --- .../microsoft/java/test/plugin/util/TestGenerationUtils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java b/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java index 0f94e10e..88566096 100644 --- a/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java +++ b/java-extension/com.microsoft.java.test.plugin/src/main/java/com/microsoft/java/test/plugin/util/TestGenerationUtils.java @@ -150,9 +150,9 @@ public static WorkspaceEdit generateTests(List arguments, IProgressMonit return null; } - if (!(binding.isClass() || binding.isInterface() || binding.isRecord())) { + if (!(binding.isClass() || binding.isInterface() || binding.isRecord() || binding.isEnum())) { JavaLanguageServerPlugin.getInstance().getClientConnection().showNotificationMessage(MessageType.Error, - "Cannot generate tests if it's not a Java class/interface/record."); + "Cannot generate tests if it's not a Java class/interface/record/enum."); return null; }