Update of /cvsroot/mocklib/mocklib2/input/javasrc/biz/xsoftware/examples/timer
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20241/javasrc/biz/xsoftware/examples/timer
Added Files:
MockTimer.java.bak SysUnderTest.java.bak TestExample.java.bak
Removed Files:
MockTimer.java SysUnderTest.java TestExample.java
Log Message:
get code coverage to be 80% or higher.
--- NEW FILE: MockTimer.java.bak ---
/*
* Created on Jul 12, 2004
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package biz.xsoftware.examples.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import biz.xsoftware.mock.CalledMethod;
import biz.xsoftware.mock.Cloner;
import biz.xsoftware.mock.MockObject;
import biz.xsoftware.mock.MockSuperclass;
/**
* A mock of Timer. This class is a bit more complicated that it would
* be if an interface was used instead.
*
* @author Dean Hiller
*/
public class MockTimer extends Timer implements MockObject {
public final static String CANCEL = "cancel";
public final static String SCHEDULE = "schedule";
public final static String SCHEDULE_FIXED_RATE = "scheduleAtFixedRate";
private Delegate delegate = new Delegate();
private class Delegate extends MockSuperclass {
/**
* @see biz.xsoftware.mock.MockSuperclass#methodCalled(java.lang.String, java.lang.Object)
*/
public Object methodCalled(String method, Object param) {
return super.methodCalled(method, param);
}
/* (non-Javadoc)
* @see biz.xsoftware.mock.MockSuperclass#getClasses()
*/
public Class[] getClasses() {
return new Class[] { MockTimer.class };
}
public Object inst() {
// TODO Auto-generated method stub
return null;
}
}
/**
* @see java.util.Timer#cancel()
*/
public void cancel() {
delegate.methodCalled(CANCEL, null);
}
/**
* @see java.util.Timer#schedule(java.util.TimerTask, java.util.Date, long)
*/
public void schedule(TimerTask task, Date firstTime, long period) {
Object[] obj = new Object[] {task, firstTime, new Long(period)};
delegate.methodCalled(SCHEDULE, obj);
}
/**
* @see java.util.Timer#schedule(java.util.TimerTask, java.util.Date)
*/
public void schedule(TimerTask task, Date time) {
Object[] obj = new Object[] {task, time};
delegate.methodCalled(SCHEDULE, obj);
}
/**
* @see java.util.Timer#schedule(java.util.TimerTask, long, long)
*/
public void schedule(TimerTask task, long delay, long period) {
Object[] obj = new Object[] {task, new Long(delay), new Long(period)};
delegate.methodCalled(SCHEDULE, obj);
}
/**
* @see java.util.Timer#schedule(java.util.TimerTask, long)
*/
public void schedule(TimerTask task, long delay) {
Object[] obj = new Object[] {task, new Long(delay)};
delegate.methodCalled(SCHEDULE, obj);
}
/**
* @see java.util.Timer#scheduleAtFixedRate(java.util.TimerTask, java.util.Date, long)
*/
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) {
Object[] obj = new Object[] {task, firstTime, new Long(period)};
delegate.methodCalled(SCHEDULE_FIXED_RATE, obj);
}
/**
* @see java.util.Timer#scheduleAtFixedRate(java.util.TimerTask, long, long)
*/
public void scheduleAtFixedRate(TimerTask task, long delay, long period) {
Object[] obj = new Object[] {task, new Long(delay), new Long(period)};
delegate.methodCalled(SCHEDULE_FIXED_RATE, obj);
}
/**
* @see biz.xsoftware.mock.MockObject#expectCall(java.lang.String)
*/
public CalledMethod expectCall(String method) {
return delegate.expectCall(method);
}
/**
* @see biz.xsoftware.mock.MockObject#expectOrderedCalls(java.lang.String[])
*/
public CalledMethod[] expectOrderedCalls(String[] methods) {
return delegate.expectOrderedCalls(methods);
}
/**
* @see biz.xsoftware.mock.MockObject#expectUnorderedCalls(java.lang.String[])
*/
public CalledMethod[] expectUnorderedCalls(String[] methods) {
return delegate.expectUnorderedCalls(methods);
}
/**
* @see biz.xsoftware.mock.MockObject#addThrowException(java.lang.String, java.lang.Throwable)
*/
public void addThrowException(String method, Throwable e) {
delegate.addThrowException(method, e);
}
/**
* @see biz.xsoftware.mock.MockObject#addReturnValue(java.lang.String, java.lang.Object)
*/
public void addReturnValue(String method, Object o) {
delegate.addReturnValue(method, o);
}
/** (non-Javadoc)
* @see biz.xsoftware.mock.MockObject#setDefaultReturnValue(java.lang.String, java.lang.Object)
*/
public void setDefaultReturnValue(String method, Object o) {
delegate.setDefaultReturnValue(method, o);
}
/* (non-Javadoc)
* @see biz.xsoftware.mock.MockObject#setExpectTimeout(int)
*/
public void setExpectTimeout(int timeout) {
delegate.setExpectTimeout(timeout);
}
/* (non-Javadoc)
* @see biz.xsoftware.mock.MockObject#getExpectTimeout()
*/
public int getExpectTimeout() {
return delegate.getExpectTimeout();
}
/**
* @see biz.xsoftware.mock.MockObject#setIgnoredMethods(java.lang.String[])
*/
public void setIgnoredMethods(String[] methods) {
delegate.setIgnoredMethods(methods);
}
public void setCloner(Cloner c) {
delegate.setCloner(c);
}
public Object inst() {
// TODO Auto-generated method stub
return null;
}
}
--- TestExample.java DELETED ---
--- NEW FILE: SysUnderTest.java.bak ---
/*
* Created on Jun 28, 2004
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package biz.xsoftware.examples.timer;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.event.EventListenerList;
/**
* The SysUnderTest here is a Calendar which notifies users of a
* scheduled event.
*/
public class SysUnderTest {
private Timer timer;
private EventListenerList listenerList = new EventListenerList();
/**
* @showcode
*/
public SysUnderTest(Timer t) {
timer = t;
}
/**
* @showcode
*/
public void addEvent(String title, long delay) {
timer.schedule(new CalendarEvent(title), delay);
}
/**
* @showcode
*/
public void addScheduleListener(ScheduleListener l) {
listenerList.add(ScheduleListener.class, l);
}
/**
* @showcode
*/
public void removeScheduleListener(ScheduleListener l) {
listenerList.remove(ScheduleListener.class, l);
}
private class CalendarEvent extends TimerTask {
private String title;
/**
* @showcode
*/
public CalendarEvent(String title) {
this.title = title;
}
/**
* @showcode
*/
public void run() {
fireEventStarted(title);
}
}
/**
* @showcode
*/
protected void fireEventStarted(String title) {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==ScheduleListener.class) {
((ScheduleListener)listeners[i+1]).eventStarted(title);
}
}
}
}
--- NEW FILE: TestExample.java.bak ---
/*
* Created on Jun 28, 2004
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package biz.xsoftware.examples.timer;
import java.util.TimerTask;
import junit.framework.TestCase;
import biz.xsoftware.mock.MockObjectFactory;
import biz.xsoftware.mock.MockObject;
/**
* JUnit Suite of TestCases for demonstrating mocking out Timer in the
* java util package.
*
* @author Dean Hiller
*/
public class TestExample extends TestCase {
private MockObject mockListener;
private MockTimer mockTimer;
private SysUnderTest calendar;
/**
* @showcode
*/
public TestExample(String name) {
super(name);
}
/**
* @showcode
*/
protected void setUp() {
mockTimer = new MockTimer();
calendar = new SysUnderTest(mockTimer);
mockListener = MockObjectFactory.createMock(ScheduleListener.class);
calendar.addScheduleListener((ScheduleListener)mockListener);
}
/**
* @showcode
*/
protected void tearDown() {
calendar.removeScheduleListener((ScheduleListener)mockListener);
}
/**
* @showcode
*/
public void testBasicCalendar() {
String title = "some event";
long delay = 50000;
calendar.addEvent(title, delay);
Object[] params = mockTimer.expectCall("schedule").getAllParams();
//param[0] is a timer task
TimerTask task = (TimerTask)params[0];
assertEquals("Should have set the timer for "+delay+" ms", new Long(delay), params[1]);
//run the task now instead of waiting 50000ms
task.run();
params = mockListener.expectCall("eventStarted").getAllParams();
assertEquals("title should be the same", title, params[0]);
}
}
--- SysUnderTest.java DELETED ---
--- MockTimer.java DELETED ---
|