blob: 1ee91a8af5f8e5d7d25c79c267b4d1ac05082a7a [file] [log] [blame]
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)
}
}