package junit.tests.extensions;
import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestResult;
import junit.framework.TestSuite;
import junit.tests.WasRun;
/**
* A test case testing the extensions to the testing framework.
*/
public class ExtensionTest extends TestCase {
static class TornDown extends TestSetup {
boolean fTornDown = false;
TornDown(Test test) {
super(test);
}
@Override
protected void tearDown() {
fTornDown = true;
}
}
public void testRunningErrorInTestSetup() {
TestCase test = new TestCase("failure") {
@Override
public void runTest() {
fail();
}
};
TestSetup wrapper = new TestSetup(test);
TestResult result = new TestResult();
wrapper.run(result);
assertTrue(!result.wasSuccessful());
}
public void testRunningErrorsInTestSetup() {
TestCase failure = new TestCase("failure") {
@Override
public void runTest() {
fail();
}
};
TestCase error = new TestCase("error") {
@Override
public void runTest() {
throw new Error();
}
};
TestSuite suite = new TestSuite();
suite.addTest(failure);
suite.addTest(error);
TestSetup wrapper = new TestSetup(suite);
TestResult result = new TestResult();
wrapper.run(result);
assertEquals(1, result.failureCount());
assertEquals(1, result.errorCount());
}
public void testSetupErrorDontTearDown() {
WasRun test = new WasRun();
TornDown wrapper = new TornDown(test) {
@Override
public void setUp() {
fail();
}
};
TestResult result = new TestResult();
wrapper.run(result);
assertTrue(!wrapper.fTornDown);
}
public void testSetupErrorInTestSetup() {
WasRun test = new WasRun();
TestSetup wrapper = new TestSetup(test) {
@Override
public void setUp() {
fail();
}
};
TestResult result = new TestResult();
wrapper.run(result);
assertTrue(!test.fWasRun);
assertTrue(!result.wasSuccessful());
}
}