public function testExtensionKnowsIfItCanInstall()
 {
     $extension = new Extension($bag = m::mock('Cartalyst\\Extensions\\ExtensionBag'), 'foo/bar', 'path/to/extension', array('require' => array('baz/bat', 'qux/corge')));
     $bag->shouldReceive('offsetExists')->with('baz/bat')->once()->andReturn(true);
     $bag->shouldReceive('offsetExists')->with('qux/corge')->once()->andReturn(true);
     $bag->shouldReceive('offsetGet')->with('baz/bat')->once()->andReturn($extension1 = m::mock('Cartalyst\\Extensions\\Extension'));
     $bag->shouldReceive('offsetGet')->with('qux/corge')->once()->andReturn($extension2 = m::mock('Cartalyst\\Extensions\\Extension'));
     $extension1->shouldReceive('isInstalled')->once()->andReturn(true);
     $extension2->shouldReceive('isInstalled')->once()->andReturn(true);
     $this->assertTrue($extension->canInstall());
 }