⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groovymock.java

📁 大名鼎鼎的java动态脚本语言。已经通过了sun的认证
💻 JAVA
字号:
package groovy.mock;import groovy.lang.GroovyObject;import groovy.lang.Closure;import groovy.lang.GroovyObjectSupport;import com.mockobjects.Verifiable;import com.mockobjects.dynamic.*;/** *  * @author Joe Walnes * @author Chris Stevenson * @version $Revision: 1.4 $ */public class GroovyMock extends GroovyObjectSupport implements Verifiable {    private CallBag calls = new CallBag();    private CallFactory callFactory = new DefaultCallFactory();    private Mock mock = new Mock(I.class);    interface I {    }    private GroovyObject instance = new GroovyObjectSupport() {        public Object invokeMethod(String name, Object args) {            return callMethod(name, args);        }    };    public Object invokeMethod(String name, Object args) {        if (name.equals("verify")) {            verify();        }        else {            expectMethod(name, args);        }        return null;    }    public GroovyObject getInstance() {        return instance;    }    public static GroovyMock newInstance() {        return new GroovyMock();    }    private void expectMethod(String name, Object args) {        ConstraintMatcher constraintMatcher = createMatcher(args);        calls.addExpect(            callFactory.createCallExpectation(                callFactory.createCallSignature(name, constraintMatcher, callFactory.createVoidStub())));    }    private ConstraintMatcher createMatcher(Object args) {        if(args.getClass().isArray()) {            Object argArray[] = (Object[]) args;            if (argArray[0] instanceof Closure) {                Closure closure = (Closure) argArray[0];                return C.args(new ClosureConstraintMatcher(closure));            }        }        return C.args(C.eq(args));    }    private Object callMethod(String name, Object args) {        try {            return calls.call(mock, name, new Object[] { args });        }        catch (Throwable throwable) {            throw new RuntimeException(throwable);        }    }    public void verify() {        calls.verify();    }}

⌨️ 快捷键说明

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