コード例 #1
0
  /** Requires trimmed <code>request</code> been not equal to "!". */
  static void resolveTestRequest(
      String request,
      IncludedExcludedPatterns patterns,
      Collection<ResolvedTest> includedFilters,
      Collection<ResolvedTest> excludedFilters) {
    final boolean isExcluded = request.startsWith("!");
    ResolvedTest test = null;
    request = removeExclamationMark(request);
    if (isRegexPrefixedPattern(request)) {
      final String[] unwrapped = unwrapRegex(request);
      final boolean hasClass = unwrapped[0].length() != 0;
      final boolean hasMethod = unwrapped[1].length() != 0;
      if (hasClass && hasMethod) {
        test = new ResolvedTest(unwrapped[0], unwrapped[1], true);
      } else if (hasClass) {
        test = new ResolvedTest(ResolvedTest.Type.CLASS, unwrapped[0], true);
      } else if (hasMethod) {
        test = new ResolvedTest(ResolvedTest.Type.METHOD, unwrapped[1], true);
      }
    } else {
      final int indexOfMethodSeparator = request.indexOf('#');
      if (indexOfMethodSeparator == -1) {
        test = new ResolvedTest(ResolvedTest.Type.CLASS, request, false);
      } else {
        String clazz = request.substring(0, indexOfMethodSeparator);
        String methods = request.substring(1 + indexOfMethodSeparator);
        nonRegexClassAndMethods(
            clazz, methods, isExcluded, patterns, includedFilters, excludedFilters);
      }
    }

    if (test != null && !test.isEmpty()) {
      updatedFilters(isExcluded, test, patterns, includedFilters, excludedFilters);
    }
  }