/** * @dataProvider casesForMapValues */ public function testChainedMapValues($collection, $expected) { $self = $this; $iteratee = function ($value, $key, $collection2) use($self, $collection) { $self->assertSame($collection, $collection2); return $key . ' is ' . $value; }; $container = new Container($collection); $actual = $container->mapValues($iteratee)->value(); $this->assertEquals($expected, $actual); }