Update of /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic
In directory sc8-pr-cvs1:/tmp/cvs-serv29451/src/core/com/mockobjects/dynamic
Added Files:
Expectation.java InvocationDispatcher.java Invokable.java
Stub.java DynamicMockError.java
Log Message:
New classes for Invocation-based refactoring
--- NEW FILE: Expectation.java ---
/*
* Created on 20-Aug-2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package com.mockobjects.dynamic;
import com.mockobjects.Verifiable;
/**
* An object that checks expectations of an Invokable object.
*
* @author montagu
*/
public interface Expectation
extends Verifiable
{
boolean matches( Invocation invocation );
void check( Invocation invocation );
}
--- NEW FILE: InvocationDispatcher.java ---
/*
* Created on 20-Aug-2003
* Copyright mockobjects.com
*
*/
package com.mockobjects.dynamic;
import java.util.ArrayList;
import java.util.Iterator;
public class InvocationDispatcher {
private ArrayList invokables = new ArrayList();
public Object dispatch(Invocation invocation) throws Throwable {
Iterator i = invokables.iterator();
while (i.hasNext()) {
Invokable invokable = (Invokable)i.next();
if (invokable.matches(invocation)) {
return invokable.invoke(invocation);
}
}
throw new DynamicMockError(invocation, "Nothing matches on this mock");
}
public void add(Invokable invokable) {
invokables.add(invokable);
}
}
--- NEW FILE: Invokable.java ---
package com.mockobjects.dynamic;
import com.mockobjects.Verifiable;
public interface Invokable
extends Verifiable
{
String getDescription();
boolean matches(Invocation invocation);
Object invoke(Invocation invocation) throws Throwable;
}
--- NEW FILE: DynamicMockError.java ---
/*
* Created on 20-Aug-2003
*
* Copyright mockobjects.com
*/
package com.mockobjects.dynamic;
import junit.framework.AssertionFailedError;
public class DynamicMockError extends AssertionFailedError {
public final Invocation invocation;
public DynamicMockError(Invocation invocation, String message) {
super(message);
this.invocation = invocation;
}
}
|