public function testExtract() { $transform = function ($value) { return $value . ' extracted'; }; $this->type->expects($this->atLeastOnce())->method('extract')->will($this->returnCallback($transform)); $tab = range(1, 10); $expected = array_map($transform, $tab); $this->assertEquals($expected, $this->object->extract($tab)); $value = new \ArrayIterator($tab); $this->assertEquals($expected, $this->object->extract($value)); }