public function testExtendedBindings() { $container = new Container(); $container['foo'] = 'foo'; $container->extend('foo', function ($old, $container) { return $old . 'bar'; }); $this->assertEquals('foobar', $container->make('foo')); $container = new Container(); $container['foo'] = $container->share(function () { return (object) array('name' => 'taylor'); }); $container->extend('foo', function ($old, $container) { $old->age = 26; return $old; }); $result = $container->make('foo'); $this->assertEquals('taylor', $result->name); $this->assertEquals(26, $result->age); $this->assertTrue($result === $container->make('foo')); }