package org.jbpm.examples.door;
import junit.framework.TestCase;
/**
* This example shows the tradeoff between implementing the behaviour of a door in plain Java and
* using a jPDL process. This is intended for developers to learn about the aspects that are handled
* better in a process versus plain programming.
*/
public class DoorTest extends TestCase {
public void testClosedOpen() {
Door door = new Door();
door.open();
assertSame(Door.OPEN, door.state);
}
public void testClosedLock() {
Door door = new Door();
door.lock();
assertSame(Door.LOCKED, door.state);
}
public void testClosedClose() {
Door door = new Door();
try {
door.close();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testClosedUnlock() {
Door door = new Door();
try {
door.unlock();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testOpenedOpen() {
Door door = new Door();
door.state = Door.OPEN;
try {
door.open();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testOpenedLock() {
Door door = new Door();
door.state = Door.OPEN;
door.lock();
assertSame(Door.OPEN_LOCKED, door.state);
}
public void testOpenedClose() {
Door door = new Door();
door.state = Door.OPEN;
door.close();
assertSame(Door.CLOSED, door.state);
}
public void testOpenedUnlock() {
Door door = new Door();
door.state = Door.OPEN;
try {
door.unlock();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testLockedOpen() {
Door door = new Door();
door.state = Door.LOCKED;
try {
door.open();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testLockedLock() {
Door door = new Door();
door.state = Door.LOCKED;
try {
door.lock();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testLockedClose() {
Door door = new Door();
door.state = Door.LOCKED;
try {
door.close();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testLockedUnlock() {
Door door = new Door();
door.state = Door.LOCKED;
door.unlock();
assertSame(Door.CLOSED, door.state);
}
public void testOpenLockedOpen() {
Door door = new Door();
door.state = Door.OPEN_LOCKED;
try {
door.open();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testOpenLockedLock() {
Door door = new Door();
door.state = Door.OPEN_LOCKED;
try {
door.lock();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testOpenLockedClose() {
Door door = new Door();
door.state = Door.OPEN_LOCKED;
try {
door.close();
fail("expected exception");
}
catch (IllegalStateException e) {
}
}
public void testOpenLockedUnlock() {
Door door = new Door();
door.state = Door.OPEN_LOCKED;
door.unlock();
assertSame(Door.OPEN, door.state);
}
}