public function testObjectMethodDispatch()
{
$collection = new Collection();
for ($i = 0; $i < 10; $i++) {
$collection[] = new MockCollectionMarker();
}
$result = $collection->mark();
$this->assertEqual($result, array_fill(0, 10, true));
$result = $collection->mapArray();
$this->assertEqual($result, array_fill(0, 10, array('foo')));
$result = $collection->invoke('mapArray', array(), array('merge' => true));
$this->assertEqual($result, array_fill(0, 10, 'foo'));
$collection = new Collection(array('data' => array_fill(0, 10, new MockCollectionObject())));
$result = $collection->testFoo();
$this->assertEqual($result, array_fill(0, 10, 'testFoo'));
$result = $collection->invoke('testFoo', array(), array('collect' => true));
$this->assertInstanceOf('lithium\\util\\Collection', $result);
$this->assertEqual($result->to('array'), array_fill(0, 10, 'testFoo'));
}