[testng] 91/355: Minor refactoring in MethodGroupsHelper

Eugene Zhukov eugene-guest at moszumanska.debian.org
Tue Aug 18 10:19:51 UTC 2015


This is an automated email from the git hooks/post-receive script.

eugene-guest pushed a commit to annotated tag OpenBSD
in repository testng.

commit d6250d6c4f4a7fab0f0b1ab0d8fa050d708d6563
Author: Vladislav Rassokhin <vladrassokhin at gmail.com>
Date:   Sun Nov 23 01:09:06 2014 +0300

    Minor refactoring in MethodGroupsHelper
---
 .../org/testng/internal/MethodGroupsHelper.java    | 55 +++++++++++++++-------
 1 file changed, 39 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/testng/internal/MethodGroupsHelper.java b/src/main/java/org/testng/internal/MethodGroupsHelper.java
index 11cb668..622a122 100644
--- a/src/main/java/org/testng/internal/MethodGroupsHelper.java
+++ b/src/main/java/org/testng/internal/MethodGroupsHelper.java
@@ -254,34 +254,57 @@ public class MethodGroupsHelper {
       ITestNGMethod method,
       ITestNGMethod[] methods, String groupRegexp)
   {
-    boolean foundGroup = false;
-    List<ITestNGMethod> vResult = Lists.newArrayList();
-    Pattern groupPattern = PATTERN_CACHE.get(groupRegexp);
-    if (groupPattern == null) {
-      groupPattern = Pattern.compile(groupRegexp);
-      PATTERN_CACHE.put(groupRegexp, groupPattern);
+    ITestNGMethod[] found = findMethodsThatBelongToGroup(methods, groupRegexp);
+
+    if (found.length == 0) {
+      method.setMissingGroup(groupRegexp);
     }
+
+    return found;
+  }
+
+  /**
+   * @param methods list of methods to search
+   * @param groupRegexp regex representing the group
+   *
+   * @return all the methods that belong to the group specified by the regular
+   * expression groupRegExp.  methods[] is the list of all the methods we
+   * are choosing from.
+   */
+  protected static ITestNGMethod[] findMethodsThatBelongToGroup(ITestNGMethod[] methods, String groupRegexp)
+  {
+    List<ITestNGMethod> vResult = Lists.newArrayList();
+    final Pattern pattern = getPattern(groupRegexp);
     for (ITestNGMethod tm : methods) {
       String[] groups = tm.getGroups();
       for (String group : groups) {
-        Pair<String, String> cacheKey = Pair.create(groupRegexp, group);
-        Boolean match = MATCH_CACHE.get(cacheKey);
-        if (match == null) {
-          match = groupPattern.matcher(group).matches();
-          MATCH_CACHE.put(cacheKey, match);
-        }
+        Boolean match = isMatch(pattern, group);
         if (match) {
           vResult.add(tm);
-          foundGroup = true;
         }
       }
     }
 
-    if (!foundGroup) {
-      method.setMissingGroup(groupRegexp);
+    return vResult.toArray(new ITestNGMethod[vResult.size()]);
+  }
+
+  private static Boolean isMatch(Pattern pattern, String group) {
+    Pair<String, String> cacheKey = Pair.create(pattern.pattern(), group);
+    Boolean match = MATCH_CACHE.get(cacheKey);
+    if (match == null) {
+      match = pattern.matcher(group).matches();
+      MATCH_CACHE.put(cacheKey, match);
     }
+    return match;
+  }
 
-    return vResult.toArray(new ITestNGMethod[vResult.size()]);
+  private static Pattern getPattern(String groupRegexp) {
+    Pattern groupPattern = PATTERN_CACHE.get(groupRegexp);
+    if (groupPattern == null) {
+      groupPattern = Pattern.compile(groupRegexp);
+      PATTERN_CACHE.put(groupRegexp, groupPattern);
+    }
+    return groupPattern;
   }
 
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git



More information about the pkg-java-commits mailing list