demand.groovy

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 30 行

GROOVY
30
字号
package groovy.mock.interceptor

/**
    The object that registers method calls on it for the use with Mocks and Stubs.
    For each call a CallSpec object is added to the recorded list.
    @author Dierk Koenig
*/

class Demand {

    def List recorded = []

    Object invokeMethod(String methodName, Object args) {
        def range = 1..1
        if (args[0] instanceof IntRange) {
            range = args[0]
            if (range.reverse) throw new IllegalArgumentException('Reverse ranges not supported.')
        }
        if (args[-1] instanceof Closure) {
            recorded << new CallSpec(name:methodName, behavior:args[-1], range:range)
        }
    }
}

class CallSpec {
    String  name
    Closure behavior
    Range   range
}

⌨️ 快捷键说明

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