use of org.junit.runners.model.FrameworkMethod in project spring-framework by spring-projects.
the class SpringJUnit4ClassRunnerTests method getSpringTimeoutViaMetaAnnotationWithOverride.
@Test
public void getSpringTimeoutViaMetaAnnotationWithOverride() throws Exception {
SpringJUnit4ClassRunner runner = new SpringJUnit4ClassRunner(getClass());
long timeout = runner.getSpringTimeout(new FrameworkMethod(getClass().getDeclaredMethod("springTimeoutWithMetaAnnotationAndOverride")));
assertEquals(42, timeout);
}
use of org.junit.runners.model.FrameworkMethod in project pact-jvm by DiUS.
the class HttpTarget method getProviderInfo.
protected ProviderInfo getProviderInfo() {
Provider provider = testClass.getAnnotation(Provider.class);
final ProviderInfo providerInfo = new ProviderInfo(provider.value());
providerInfo.setPort(port);
providerInfo.setHost(host);
providerInfo.setProtocol(protocol);
providerInfo.setPath(path);
providerInfo.setInsecure(insecure);
if (testClass != null) {
final List<FrameworkMethod> methods = testClass.getAnnotatedMethods(TargetRequestFilter.class);
if (!methods.isEmpty()) {
providerInfo.setRequestFilter((Consumer<HttpRequest>) httpRequest -> methods.forEach(method -> {
try {
method.invokeExplosively(testTarget, httpRequest);
} catch (Throwable t) {
throw new AssertionError("Request filter method " + method.getName() + " failed with an exception", t);
}
}));
}
}
return providerInfo;
}
use of org.junit.runners.model.FrameworkMethod in project pact-jvm by DiUS.
the class MockMvcTarget method getProviderInfo.
@Override
protected ProviderInfo getProviderInfo() {
Provider provider = testClass.getAnnotation(Provider.class);
final ProviderInfo providerInfo = new ProviderInfo(provider.value());
if (testClass != null) {
final List<FrameworkMethod> methods = testClass.getAnnotatedMethods(TargetRequestFilter.class);
if (!methods.isEmpty()) {
providerInfo.setRequestFilter((Consumer<HttpRequest>) httpRequest -> methods.forEach(method -> {
try {
method.invokeExplosively(testTarget, httpRequest);
} catch (Throwable t) {
throw new AssertionError("Request filter method " + method.getName() + " failed with an exception", t);
}
}));
}
}
return providerInfo;
}
use of org.junit.runners.model.FrameworkMethod in project tomee by apache.
the class TomEEEmbeddedSingleRunner method rules.
@Override
protected List<MethodRule> rules(final Object test) {
final List<MethodRule> rules = super.rules(test);
rules.add(new MethodRule() {
@Override
public Statement apply(final Statement base, final FrameworkMethod method, final Object target) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
start(test);
getRunner().composerInject(target);
base.evaluate();
}
};
}
});
return rules;
}
use of org.junit.runners.model.FrameworkMethod in project sling by apache.
the class PerformanceRunner method computePerformanceTests.
/**
* Compute performance tests
*
* @return the list containing the performance test methods
* @throws Exception
*/
protected Collection<? extends FrameworkMethod> computePerformanceTests() throws Exception {
List<FrameworkMethod> tests = new LinkedList<FrameworkMethod>();
List<Object> testObjects = new ArrayList<Object>();
List<Object> testObjectsTmp = new ArrayList<Object>();
ParameterizedTestList testCenter = new ParameterizedTestList();
// Retrieve the test objects included in the Performance test suite
for (FrameworkMethod method : getTestClass().getAnnotatedMethods(PerformanceTestSuite.class)) {
Object targetObject = getTestClass().getJavaClass().newInstance();
if (method.getMethod().getReturnType().equals(ParameterizedTestList.class)) {
testCenter = (ParameterizedTestList) method.getMethod().invoke(targetObject);
testObjectsTmp = testCenter.getTestObjectList();
// Iterate through all the test cases and see if they have a factory
for (Object testObject : testObjectsTmp) {
Method[] factoryMethods = getSpecificMethods(testObject.getClass(), PerformanceTestFactory.class);
// If we have a factory method, get all the instance objects returned by this factory
if (factoryMethods.length > 0) {
// Make sure there's only one factory method
if (factoryMethods.length > 1) {
throw new IllegalStateException("There should be at most one PerformanceTestFactory method");
}
Method factoryMethod = factoryMethods[0];
// Execute the method (statically)
Object instances = factoryMethod.invoke(testObject);
// If the factory returned an array, make a list
if (instances.getClass().isArray()) {
instances = Arrays.asList((Object[]) instances);
}
// If the factory returned a single element, put it in a list
if (!(instances instanceof Iterable<?>)) {
instances = Collections.singletonList(instances);
}
testObjects.addAll((List) instances);
} else {
testObjects.add(testObject);
}
}
} else {
throw new InitializationError("Wrong signature for the @PerformanceTestSuite method");
}
}
// Retrieve the methods before running the methods from the test suite
List<FrameworkMethod> beforeSuiteMethods = getTestClass().getAnnotatedMethods(BeforeSuite.class);
if (beforeSuiteMethods.size() > 1) {
throw new InitializationError("Only one @BeforeSuite method is allowed for a @PerformanceSuite");
}
// Retrieve the methods before running the methods from the test suite
List<FrameworkMethod> afterSuiteMethods = getTestClass().getAnnotatedMethods(AfterSuite.class);
if (afterSuiteMethods.size() > 1) {
throw new InitializationError("Only one @AfterSuite method is allowed for a @PerformanceSuite");
}
PerformanceSuiteState current = null;
boolean suiteAlreadyRegistered = false;
for (PerformanceSuiteState suiteState : suitesState) {
if (suiteState.testSuiteName.equals(testCenter.getTestSuiteName())) {
suiteAlreadyRegistered = true;
suiteState.incrementNumberOfTestMethodsInSuite();
current = suiteState;
break;
}
}
// Create a new PerformanceSuiteState object
PerformanceSuiteState newSuite = new PerformanceSuiteState(testCenter.getTestSuiteName());
if (!suiteAlreadyRegistered) {
if (beforeSuiteMethods.size() == 1) {
newSuite.setBeforeSuiteMethod(beforeSuiteMethods.get(0).getMethod());
}
if (afterSuiteMethods.size() == 1) {
newSuite.setAfterSuiteMethod(afterSuiteMethods.get(0).getMethod());
}
current = newSuite;
newSuite.setTargetObjectSuite(getTestClass().getJavaClass().newInstance());
}
// contained in the PerformanceSuite
if (!testObjects.isEmpty()) {
for (Object testObject : testObjects) {
// retrieve the test methods from the test classes
Method[] testMethods = getSpecificMethods(testObject.getClass(), PerformanceTest.class);
for (Method method : testMethods) {
FrameworkPerformanceMethod performaceTestMethod = new FrameworkPerformanceMethod(method, testObject, current, reportLevel, referenceMethod);
tests.add(performaceTestMethod);
}
if (!suiteAlreadyRegistered) {
newSuite.incrementNumberOfTestMethodsInSuite();
}
}
// add the new suite to the list of suites
suitesState.add(newSuite);
}
// performance test suite
for (FrameworkMethod method : getTestClass().getAnnotatedMethods(PerformanceTest.class)) {
Object targetObject = getTestClass().getJavaClass().newInstance();
FrameworkPerformanceMethod performanceTestMethod = new FrameworkPerformanceMethod(method.getMethod(), targetObject, current, reportLevel, referenceMethod);
tests.add(performanceTestMethod);
}
return tests;
}
Aggregations