categoryforiteratortest.groovy
来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 62 行
GROOVY
62 行
import java.util.Iteratorimport groovy.util.GroovyTestCase/* * Test whether the Invoker includes categories when * trying to find an iterator (via the method iterator()) */ class CategoryForIteratorTest extends GroovyTestCase { def identity = { val -> val } def c def countCalls = { c = c + 1 } void setUp() { c = 0 } /* * Ensure that without the iterator category a * one-element collection is returned that * results in one call to the countCalls closure */ void testWithoutIteratorCategory() { identity.each countCalls assert c == 1 } /* * When using the IteratorCategory below we get an * iterator that does no iteration. So the count * has to be 0 */ void testWithIteratorCategory() { use(IteratorCategory) { c = 0 identity.each countCalls assert c == 0 } }}/* * The category simply adds an iterator()-method returning * the null iterator defined below */class IteratorCategory { static Iterator iterator(Closure c) { return new TestIterator() }}/* * This iterator returns 0 elements, allowing us to distinguish * from the default collection-iterator */class TestIterator implements Iterator { public boolean hasNext() { return false } public Object next() { return null } public void remove() {}}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?