fit.CannotLoadFixtureTest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fitnesse Show documentation
Show all versions of fitnesse Show documentation
The fully integrated standalone wiki, and acceptance testing framework.
// Modified or written by Object Mentor, Inc. for inclusion with FitNesse.
// Copyright (c) 2002 Cunningham & Cunningham, Inc.
// Released under the terms of the GNU General Public License version 2 or later.
package fit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import fit.exception.ClassIsNotFixtureException;
import fit.exception.FixtureException;
import fit.exception.NoDefaultConstructorFixtureException;
import fit.exception.NoSuchFixtureException;
import fit.testFxtr.NoDefaultConstructorFixture;
import fit.testFxtr.WouldBeFixture;
import org.junit.Before;
import org.junit.Test;
public class CannotLoadFixtureTest {
private FixtureLoader fixtureLoader;
@Before
public void setUp() throws Exception {
fixtureLoader = new FixtureLoader();
}
@Test
public void testFixtureClassDoesNotExtendFixture() throws Throwable {
assertCannotLoadFixture(
"Successfully loaded a fixture that does not extend Fixture!",
WouldBeFixture.class.getName(), ClassIsNotFixtureException.class);
}
@Test
public void testFixtureClassNotEndingInFixtureDoesNotExtendFixture() throws Throwable {
assertCannotLoadFixtureAfterChoppingOffFixture(
"Successfully loaded a fixture that does not extend Fixture!",
WouldBeFixture.class, ClassIsNotFixtureException.class);
}
@Test
public void testFixtureHasNoDefaultConstructor() throws Throwable {
assertCannotLoadFixture(
"Successfully loaded a fixture with no default constructor!",
NoDefaultConstructorFixture.class.getName(),
NoDefaultConstructorFixtureException.class);
}
@Test
public void testFixtureClassNotEndingInFixtureHasNoDefaultConstructor()
throws Throwable {
assertCannotLoadFixtureAfterChoppingOffFixture(
"Successfully loaded a fixture with no default constructor!",
NoDefaultConstructorFixture.class,
NoDefaultConstructorFixtureException.class);
}
@Test
public void testFixtureNameNotFound() throws Throwable {
assertCannotLoadFixture("Successfully loaded a nonexistent fixture!",
"BlahBlahBlah", NoSuchFixtureException.class);
}
@Test
public void testFixtureNameNotFoundEvenAfterAddingOnFixture()
throws Throwable {
try {
fixtureLoader.disgraceThenLoad("BlahBlahBlah");
fail("Successfully loaded a nonexistent fixture!");
}
catch (FixtureException expected) {
assertEquals(NoSuchFixtureException.class, expected.getClass());
assertEquals("BlahBlahBlah", expected.fixtureName);
}
}
private String chopOffFixture(Class fixtureClass) {
return fixtureClass.getName().replaceAll("Fixture", "");
}
private void assertCannotLoadFixture(String failureMessage,
String fixtureName, Class expectedExceptionType) throws Throwable {
try {
fixtureLoader.disgraceThenLoad(fixtureName);
fail(failureMessage);
}
catch (FixtureException expected) {
assertEquals(expectedExceptionType, expected.getClass());
assertEquals(fixtureName, expected.fixtureName);
}
}
private void assertCannotLoadFixtureAfterChoppingOffFixture(
String failureMessage, Class fixtureClass, Class expectedExceptionType)
throws Throwable {
try {
fixtureLoader.disgraceThenLoad(chopOffFixture(fixtureClass));
fail(failureMessage);
}
catch (FixtureException expected) {
assertEquals("Got exception: " + expected, expectedExceptionType,
expected.getClass());
assertEquals(fixtureClass.getName(), expected.fixtureName);
}
}
}