public T createTestRequest()

in src/main/java/org/apache/sling/junit/impl/TestsManagerImpl.java [153:178]


    public <T> T createTestRequest(TestSelector selector,
                            BiFunction<Class<?>, String, T> methodRequestFactory,
                            Function<Class<?>[], T> classesRequestFactory) throws ClassNotFoundException {
        final T request;
        final Collection<String> testNames = getTestNames(selector);
        if (testNames.isEmpty()) {
            throw new NoTestCasesFoundException();
        }
        final String testMethodName = selector == null ? null : selector.getSelectedTestMethodName();
        if (testNames.size() == 1 && isNotBlank(testMethodName)) {
            final String className = testNames.iterator().next();
            log.debug("Running test method {} from test class {}", testMethodName, className);
            request = methodRequestFactory.apply(getTestClass(className), testMethodName);
        } else {
            if (isNotBlank(testMethodName)) {
                throw new IllegalStateException("A test method name is only supported for a single test class");
            }
            final List<Class<?>> testClasses = new ArrayList<>();
            for (String className : testNames) {
                log.debug("Running test class {}", className);
                testClasses.add(getTestClass(className));
            }
            request = classesRequestFactory.apply(testClasses.toArray(new Class[0]));
        }
        return request;
    }