This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 15a98c1  failsafe:integration-test from contextual menu
     new 75b32e0  Merge pull request #3470 from 
abourree/feature/failsafe_integration-test
15a98c1 is described below

commit 15a98c1a2ce88769536d5a511ba0df6bde501e37
Author: Arnaud BOURRÉE <arnaud.bour...@gmail.com>
AuthorDate: Mon Jan 17 22:30:49 2022 +0100

    failsafe:integration-test from contextual menu
---
 .../org/netbeans/modules/maven/TestChecker.java    | 21 ++++++++++++++-
 .../maven/execute/DefaultReplaceTokenProvider.java | 31 ++++++++++++++++++++++
 2 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/java/maven/src/org/netbeans/modules/maven/TestChecker.java 
b/java/maven/src/org/netbeans/modules/maven/TestChecker.java
index 7e971ea..af6282a 100644
--- a/java/maven/src/org/netbeans/modules/maven/TestChecker.java
+++ b/java/maven/src/org/netbeans/modules/maven/TestChecker.java
@@ -59,6 +59,17 @@ public class TestChecker implements PrerequisitesChecker {
                     config.setProperty("test", test + '#' + method);
                 }
         }
+        if (ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(action) 
||
+            
ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE.equals(action) ||
+            "profile-tests".equals(action)) //NOI18N - profile-tests is not 
really nice but well. 
+        {
+                String test = config.getProperties().get("it.test"); //NOI18N
+                String method = 
config.getProperties().get(DefaultReplaceTokenProvider.METHOD_NAME);
+                if (test != null && method != null) {
+                    
config.setProperty(DefaultReplaceTokenProvider.METHOD_NAME, null);
+                    config.setProperty("it.test", test + '#' + method); 
//NOI18N
+                }
+        }
         if (MavenSettings.getDefault().isSkipTests()) {
             if (!String.valueOf(config.getGoals()).contains("test")) { // 
incl. integration-test
                 if (config.getProperties().get(PROP_SKIP_TEST) == null) {
@@ -67,9 +78,17 @@ public class TestChecker implements PrerequisitesChecker {
             }
         }
         if (ActionProvider.COMMAND_TEST_SINGLE.equals(action) ||
+            ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(action) 
||
             ActionProvider.COMMAND_DEBUG_TEST_SINGLE.equals(action) ||
+            
ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE.equals(action) ||
             ActionProvider.COMMAND_PROFILE_TEST_SINGLE.equals(action)) {
-            String test = config.getProperties().get("test");
+            String test;
+            if 
(ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(action) ||
+                
ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE.equals(action)) {
+                test = config.getProperties().get("it.test"); //NOI18N
+            } else {
+                test = config.getProperties().get("test"); //NOI18N
+            }
             if (test != null) {
                 //#213783  when running tests validate that the test file 
exists
                 FileObject origFile = config.getSelectedFileObject();
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 18591d8..32d272c 100644
--- 
a/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java
+++ 
b/java/maven/src/org/netbeans/modules/maven/execute/DefaultReplaceTokenProvider.java
@@ -29,6 +29,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import javax.swing.ActionMap;
 import org.netbeans.api.annotations.common.CheckForNull;
 import org.netbeans.api.java.project.JavaProjectConstants;
 import org.netbeans.api.java.queries.UnitTestForSourceQuery;
@@ -38,6 +39,7 @@ import org.netbeans.api.project.Project;
 import org.netbeans.api.project.ProjectUtils;
 import org.netbeans.api.project.SourceGroup;
 import org.netbeans.api.project.Sources;
+import org.netbeans.modules.maven.ActionProviderImpl;
 import org.netbeans.modules.maven.NbMavenProjectImpl;
 import org.netbeans.modules.maven.api.NbMavenProject;
 import org.netbeans.modules.maven.classpath.MavenSourcesImpl;
@@ -207,6 +209,7 @@ public class DefaultReplaceTokenProvider implements 
ReplaceTokenProvider, Action
             // not all of the selected files are under one source root, so 
maybe they were
             // selected from both source and test packages and "Test Files" 
action was invoked on them?
             if (ActionProvider.COMMAND_TEST_SINGLE.equals(actionName) ||
+                
ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE.equals(actionName) ||
                 ActionProvider.COMMAND_DEBUG_TEST_SINGLE.equals(actionName)) 
             {
                 HashSet<String> test = new HashSet<String>();
@@ -337,14 +340,42 @@ public class DefaultReplaceTokenProvider implements 
ReplaceTokenProvider, Action
 //        return files.toArray(
 //                new FileObject[files.size()]);
 //    }
+    
+    private boolean isIntegrationTestFile(FileObject file) {
+        return file.getName().endsWith("IT") || 
file.getName().endsWith("ITCase"); //NOI18N
+    }
 
+    private boolean isIntegrationTestTarget(Lookup lookup) {
+        final SingleMethod targetMethod = lookup.lookup(SingleMethod.class); 
//JavaDataObject
+        if (targetMethod != null) {
+            return isIntegrationTestFile(targetMethod.getFile());
+        } 
+        final Collection<? extends FileObject> targetFiles = 
lookup.lookupAll(FileObject.class);
+        if (targetFiles != null) {
+            return targetFiles.stream().allMatch(file -> 
isIntegrationTestFile(file));
+        }
+        return false;
+    }
+    
     @Override public String convert(String action, Lookup lookup) {
         if (SingleMethod.COMMAND_DEBUG_SINGLE_METHOD.equals(action)) {
+            if (isIntegrationTestTarget(lookup)) {
+                return 
ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE;
+            }
             return ActionProvider.COMMAND_DEBUG_TEST_SINGLE;
         }
         if (SingleMethod.COMMAND_RUN_SINGLE_METHOD.equals(action)) {
+            if (isIntegrationTestTarget(lookup)) {
+                return ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE;
+            }
             return ActionProvider.COMMAND_TEST_SINGLE;
         }
+        if (ActionProvider.COMMAND_TEST_SINGLE.equals(action) && 
isIntegrationTestTarget(lookup)) {
+            return ActionProviderImpl.COMMAND_INTEGRATION_TEST_SINGLE;
+        }
+        if (ActionProvider.COMMAND_DEBUG_TEST_SINGLE.equals(action) && 
isIntegrationTestTarget(lookup)) {
+            return ActionProviderImpl.COMMAND_DEBUG_INTEGRATION_TEST_SINGLE;
+        }
         if (ActionProvider.COMMAND_RUN_SINGLE.equals(action) ||
             ActionProvider.COMMAND_DEBUG_SINGLE.equals(action) ||
             ActionProvider.COMMAND_PROFILE_SINGLE.equals(action)) {

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to