|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /usr/share/junit/tests/framework/ |
Upload File : |
package junit.tests.framework;
import junit.framework.*;
import junit.tests.WasRun;
/**
* A test case testing the testing framework.
*
*/
public class TestCaseTest extends TestCase {
static class TornDown extends TestCase {
boolean fTornDown= false;
protected void tearDown() {
fTornDown= true;
}
protected void runTest() {
throw new Error();
}
}
public void testCaseToString() {
// This test wins the award for twisted snake tail eating while
// writing self tests. And you thought those weird anonymous
// inner classes were bad...
assertEquals("testCaseToString(junit.tests.framework.TestCaseTest)", toString());
}
public void testError() {
TestCase error= new TestCase("error") {
protected void runTest() {
throw new Error();
}
};
verifyError(error);
}
public void testRunAndTearDownFails() {
TornDown fails= new TornDown() {
protected void tearDown() {
super.tearDown();
throw new Error();
}
protected void runTest() {
throw new Error();
}
};
verifyError(fails);
assertTrue(fails.fTornDown);
}
public void testSetupFails() {
TestCase fails= new TestCase("success") {
protected void setUp() {
throw new Error();
}
protected void runTest() {
}
};
verifyError(fails);
}
public void testSuccess() {
TestCase success= new TestCase("success") {
protected void runTest() {
}
};
verifySuccess(success);
}
public void testFailure() {
TestCase failure= new TestCase("failure") {
protected void runTest() {
fail();
}
};
verifyFailure(failure);
}
public void testTearDownAfterError() {
TornDown fails= new TornDown();
verifyError(fails);
assertTrue(fails.fTornDown);
}
public void testTearDownFails() {
TestCase fails= new TestCase("success") {
protected void tearDown() {
throw new Error();
}
protected void runTest() {
}
};
verifyError(fails);
}
public void testTearDownSetupFails() {
TornDown fails= new TornDown() {
protected void setUp() {
throw new Error();
}
};
verifyError(fails);
assertTrue(!fails.fTornDown);
}
public void testWasRun() {
WasRun test= new WasRun();
test.run();
assertTrue(test.fWasRun);
}
public void testExceptionRunningAndTearDown() {
// This test documents the current behavior. With 1.4, we should
// wrap the exception thrown while running with the exception thrown
// while tearing down
Test t= new TornDown() {
public void tearDown() {
throw new Error("tearDown");
}
};
TestResult result= new TestResult();
t.run(result);
TestFailure failure= (TestFailure) result.errors().nextElement();
assertEquals("tearDown", failure.thrownException().getMessage());
}
public void testNoArgTestCasePasses() {
Test t= new TestSuite(NoArgTestCaseTest.class);
TestResult result= new TestResult();
t.run(result);
assertTrue(result.runCount() == 1);
assertTrue(result.failureCount() == 0);
assertTrue(result.errorCount() == 0);
}
public void testNamelessTestCase() {
TestCase t= new TestCase() {};
try {
t.run();
fail();
} catch (AssertionFailedError e) {
}
}
void verifyError(TestCase test) {
TestResult result= test.run();
assertTrue(result.runCount() == 1);
assertTrue(result.failureCount() == 0);
assertTrue(result.errorCount() == 1);
}
void verifyFailure(TestCase test) {
TestResult result= test.run();
assertTrue(result.runCount() == 1);
assertTrue(result.failureCount() == 1);
assertTrue(result.errorCount() == 0);
}
void verifySuccess(TestCase test) {
TestResult result= test.run();
assertTrue(result.runCount() == 1);
assertTrue(result.failureCount() == 0);
assertTrue(result.errorCount() == 0);
}
}