stubsequence.java

来自「不管是测试驱动开发或者是其它的开发模式」· Java 代码 · 共 46 行

JAVA
46
字号
/*  Copyright (c) 2000-2004 jMock.org
 */
package org.jmock.core.stub;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import junit.framework.AssertionFailedError;
import org.jmock.core.Invocation;
import org.jmock.core.Stub;


public class StubSequence
        implements Stub
{
    List stubs;
    Iterator iterator;


    public StubSequence( Stub[] stubs ) {
        this(Arrays.asList(stubs));
    }

    public StubSequence( List stubs ) {
        this.stubs = new ArrayList(stubs);
        this.iterator = this.stubs.iterator();
    }

    public Object invoke( Invocation invocation ) throws Throwable {
        if (iterator.hasNext()) {
            return ((Stub)iterator.next()).invoke(invocation);
        } 
    	throw new AssertionFailedError("no more stubs available");
    }

    public StringBuffer describeTo( StringBuffer buffer ) {
        for (int i = 0; i < stubs.size(); i++) {
            if (i > 0) buffer.append(", and then ");
            ((Stub)stubs.get(i)).describeTo(buffer);
        }

        return buffer;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?