diff --git a/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java b/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java index b6212bf21c5d..186a3bf61810 100644 --- a/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java +++ b/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.netbeans.api.annotations.common.CheckForNull; import org.netbeans.api.java.project.JavaProjectConstants; import org.netbeans.api.java.queries.UnitTestForSourceQuery; @@ -359,13 +360,9 @@ private boolean isIntegrationTestFile(FileObject file) { } private boolean isIntegrationTestTarget(Lookup lookup) { - final SingleMethod targetMethod = lookup.lookup(SingleMethod.class); //JavaDataObject - if (targetMethod != null) { - return isIntegrationTestFile(targetMethod.getFile()); - } - final Collection targetFiles = lookup.lookupAll(FileObject.class); - if (targetFiles != null) { - return targetFiles.stream().allMatch(file -> isIntegrationTestFile(file)); + FileObject[] targetFiles = extractFileObjectsfromLookup(lookup); + if (targetFiles.length > 0) { + return Stream.of(targetFiles).allMatch(file -> isIntegrationTestFile(file)); } return false; } diff --git a/java/maven/test/unit/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProviderTest.java b/java/maven/test/unit/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProviderTest.java index 394a23f22d9f..f023b38b5f07 100644 --- a/java/maven/test/unit/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProviderTest.java +++ b/java/maven/test/unit/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProviderTest.java @@ -28,6 +28,7 @@ import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; import org.openide.filesystems.test.TestFileUtils; +import org.openide.loaders.DataObject; import org.openide.util.Lookup; import org.openide.util.lookup.Lookups; @@ -73,6 +74,31 @@ public void testTestSingle() throws Exception { assertEquals(null, ActionProviderImpl.replacements(p, ActionProvider.COMMAND_RUN, Lookup.EMPTY).get(DefaultReplaceTokenProvider.CLASSNAME_EXT)); } + + public void testTestNotIT_GH4587() throws Exception { + TestFileUtils.writeFile(d, "pom.xml", "4.0.0" + + "ga0"); + TestFileUtils.writeFile(d, "src/test/java/p1/FirstTest.java", "package p1; class FirstTest {}"); + TestFileUtils.writeFile(d, "src/test/java/p1/FirstIT.java", "package p1; class FirstIT {}"); + Project p = ProjectManager.getDefault().findProject(d); + DefaultReplaceTokenProvider instance = new DefaultReplaceTokenProvider(p); + FileObject file = d.getFileObject("src/test/java/p1/FirstTest.java"); + String converted = instance.convert(ActionProvider.COMMAND_TEST_SINGLE, Lookups.singleton(file)); + assertNull(converted); + converted = instance.convert(ActionProvider.COMMAND_DEBUG_TEST_SINGLE, Lookups.singleton(file)); + assertNull(converted); + DataObject dob = DataObject.find(file); + converted = instance.convert(ActionProvider.COMMAND_TEST_SINGLE, Lookups.singleton(dob)); + assertNull(converted); + converted = instance.convert(ActionProvider.COMMAND_DEBUG_TEST_SINGLE, Lookups.singleton(dob)); + assertNull(converted); + file = d.getFileObject("src/test/java/p1/FirstIT.java"); + converted = instance.convert(ActionProvider.COMMAND_TEST_SINGLE, Lookups.singleton(file)); + assertEquals(ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE, converted); + dob = DataObject.find(file); + converted = instance.convert(ActionProvider.COMMAND_TEST_SINGLE, Lookups.singleton(dob)); + assertEquals(ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE, converted); + } public void testNgSingle() throws Exception { TestFileUtils.writeFile(d, "pom.xml", "4.0.0"