All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.polonium.eclipserunner.core.PoloniumTransactionalSpringTestRunner Maven / Gradle / Ivy

package com.polonium.eclipserunner.core;

/** Integration idea - try of making AbstractTransactionalJUnitTests part of PoloniumTests
 * @author Marek Serwanski
 *
 */

public class PoloniumTransactionalSpringTestRunner {//extends SpringJUnit4ClassRunner {

//	public static boolean DETAILED_DESCRIPTION = false;
//
//	private TestClass testInstance;
//	protected TransactionalSpringDescriptionBuilder descriptionBuilder;
//	protected PoloniumNotifier notifier;
//	protected ExceptionsRecognizer exceptionsRecognizer;
//	private List tests;
//
//	/** Creates necessary intances and build arrays of methods in test class 
//	 * @throws InitializationError */
//	public PoloniumTransactionalSpringTestRunner(Class testClass) throws InitializationError {
//		super(testClass);
//		testInstance = super.getTestClass();
//		//exceptionsRecognizer = new ExceptionsRecognizer(testInstance);
//		descriptionBuilder = new TransactionalSpringDescriptionBuilder();
//		notifier = new PoloniumNotifier();
//
//		tests = testInstance.getAnnotatedMethods(Test.class);
//		descriptionBuilder.getDetailedDescriptionType(testInstance);
//		descriptionBuilder.createDescription(testInstance, tests);
//	}
//
//	@Override
//	public Description getDescription() {
//		return descriptionBuilder.getClassDescription();
//	}
//
//	/** Start methods iteration and invokes */
//	@Override
//	public void run(RunNotifier runNotifier) {
//		notifier.setRunNotifier(runNotifier);
//		runMethods();
//	}
//	
//	/** returns proper number of tests (not counting given/when/then descriptions as tests */ 
//	@Override
//	public int testCount() {
//		return tests.size();
//	}
//	
//	/** Flow: 
// * 1. Invoke all methods annotated @Before
// * 2. Iterate all methods annotated @Test :
// * 2a. check if properly anntotated with @Given@When@Then
// * 2b. invoke
// * 2c. if exception occurs, then make proper notifications after exception recognizing
// * 2d. if no exception occurs, then notify with ok whole test description
// * 3. Invoke all after methods // */ // protected void runMethods(){ // invokeMethods(BeforeClass.class); // // for (FrameworkMethod test : tests) { // int testIndex = tests.indexOf(test); // Description testDescription = descriptionBuilder.getTestRootDescription(testIndex); // // if (isReadyToRun(test, testDescription)) { // try { // // begin test running // notifier.setStarted(testDescription); // invokeMethods(Before.class); // // // run test - if no errors occurs then test is notified as // // OK // // test.invokeExplosively(testInstance); // notifier.setOK(testDescription); // // } catch (Throwable e) { // notifier.checkException(testDescription, e); // } finally { // invokeMethods(After.class); // } // } // } // } // // // checks if test is properly annotated and not set as Ignored // private boolean isReadyToRun(FrameworkMethod test, Description testDescription) { // if (!descriptionBuilder.isTestProperlyAnnotated(test)) { // notifier.setFailure(testDescription, new AnnotationException()); // return false; // } else if (test.getAnnotation(Ignore.class) != null) { // notifier.setIgnore(testDescription); // return false; // } else { // return true; // } // } // // private void invokeMethods(Class annotationType) { // try { // for (FrameworkMethod method : testInstance.getAnnotatedMethods(annotationType)) { // method.invokeExplosively(testInstance); // } // } catch (Throwable e) { // System.err.println("Error while invoking " + annotationType.getName() + " methods"); // } // } // // private PoloniumTest getTestInstance(Class testClass) { // try { // return testClass.newInstance(); // } catch (Exception e) { // throw new RuntimeException(e); // } // } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy