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 + -
显示快捷键?