Source: "Agile Software Development: Principles, Patterns, and Practices"
by Robert C. Martin. Available at www.objectmentor.com/PPP.
import java.util.Date;
public interface Employee
{
public boolean isTimeToPay(Date payDate);
public void pay();
public static final Employee NULL = new Employee()
{
public boolean isTimeToPay(Date payDate)
{
return false;
}
public void pay()
{
}
};
}
public class DB
{
public static Employee getEmployee(String name)
{
return Employee.NULL;
}
}
import junit.framework.TestCase;
import junit.swingui.TestRunner;
import java.util.Date;
public class TestEmployee extends TestCase
{
public static void main(String[] args)
{
TestRunner.main(new String[]{"TestEmployee"});
}
public TestEmployee(String name)
{
super(name);
}
public void setUp() throws Exception
{
}
public void tearDown() throws Exception
{
}
public void testNull() throws Exception
{
Employee e = DB.getEmployee("Bob");
if (e.isTimeToPay(new Date()))
fail();
assertEquals(Employee.NULL, e);
}
}
This is an example from CSci 3601 course.