package groovy.mock.interceptor | |
class MockForJavaTest extends GroovyTestCase { | |
void testIterator() { | |
def iteratorContext = new MockFor(Iterator) | |
iteratorContext.demand.hasNext() { true } | |
iteratorContext.demand.hasNext() { true } | |
iteratorContext.demand.hasNext() { false } | |
def iterator = iteratorContext.proxyDelegateInstance() | |
iteratorContext.demand.next() { "foo" } | |
def iterator2 = iteratorContext.proxyDelegateInstance() | |
assert new IteratorCounter().count(iterator2) == 2 | |
assert iterator2.next() == "foo" | |
iteratorContext.verify(iterator2) | |
assert new IteratorCounter().count(iterator) == 2 | |
iteratorContext.verify(iterator) | |
iteratorContext = new MockFor(Iterator) | |
iteratorContext.demand.hasNext(7..7) { true } | |
iteratorContext.demand.hasNext() { false } | |
def iterator3 = iteratorContext.proxyDelegateInstance() | |
assert new IteratorCounter().count(iterator3) == 7 | |
iteratorContext.verify(iterator3) | |
} | |
void testString() { | |
def iteratorContext = new MockFor(String) | |
iteratorContext.demand.endsWith(2..2) { String arg -> arg == "foo" } | |
def s = iteratorContext.proxyDelegateInstance() | |
assert !s.endsWith("bar") | |
assert s.endsWith("foo") | |
iteratorContext.verify(s) | |
} | |
} |