fifoinvocationdispatcher.java
来自「不管是测试驱动开发或者是其它的开发模式」· Java 代码 · 共 78 行
JAVA
78 行
/* Copyright (c) 2000-2004 jMock.org
*/
package org.jmock.core;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
import org.jmock.core.stub.TestFailureStub;
public class FIFOInvocationDispatcher
implements InvocationDispatcher
{
public static final String NO_EXPECTATIONS_MESSAGE = "No expectations set";
private ArrayList invokables = new ArrayList();
private Stub defaultStub = new TestFailureStub("no match found");
public Object dispatch( Invocation invocation ) throws Throwable {
ListIterator i = invokables.listIterator();
while (i.hasNext()) {
Invokable invokable = (Invokable)i.next();
if (invokable.matches(invocation)) {
return invokable.invoke(invocation);
}
}
return defaultStub.invoke(invocation);
}
public void setDefaultStub( Stub defaultStub ) {
this.defaultStub = defaultStub;
}
public void add( Invokable invokable ) {
invokables.add(invokable);
}
public void verify() {
Iterator i = invokables.iterator();
while (i.hasNext()) {
((Verifiable)i.next()).verify();
}
}
public void clear() {
invokables.clear();
}
public StringBuffer describeTo( StringBuffer buffer ) {
if (anyInvokableHasDescription()) {
writeInvokablesTo(buffer);
} else {
buffer.append(NO_EXPECTATIONS_MESSAGE);
}
return buffer;
}
private void writeInvokablesTo( StringBuffer buffer ) {
Iterator iterator = invokables.iterator();
while (iterator.hasNext()) {
Invokable invokable = (Invokable)iterator.next();
if (invokable.hasDescription()) {
invokable.describeTo(buffer).append("\n");
}
}
}
private boolean anyInvokableHasDescription() {
Iterator iterator = invokables.iterator();
while (iterator.hasNext()) {
if (((Invokable)iterator.next()).hasDescription()) return true;
}
return false;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?