1
0
Fork 0

fix when composite repo has no delegates

pull/2019/head
Kris Wallsmith 2013-06-19 14:21:13 -07:00
parent 52990eca1e
commit fa4b13d95a
2 changed files with 21 additions and 3 deletions

View File

@ -91,7 +91,7 @@ class CompositeRepository implements RepositoryInterface
$packages[] = $repository->findPackages($name, $version); $packages[] = $repository->findPackages($name, $version);
} }
return call_user_func_array('array_merge', $packages); return $packages ? call_user_func_array('array_merge', $packages) : array();
} }
/** /**
@ -105,7 +105,7 @@ class CompositeRepository implements RepositoryInterface
$matches[] = $repository->search($query, $mode); $matches[] = $repository->search($query, $mode);
} }
return call_user_func_array('array_merge', $matches); return $matches ? call_user_func_array('array_merge', $matches) : array();
} }
/** /**
@ -133,7 +133,7 @@ class CompositeRepository implements RepositoryInterface
$packages[] = $repository->getPackages(); $packages[] = $repository->getPackages();
} }
return call_user_func_array('array_merge', $packages); return $packages ? call_user_func_array('array_merge', $packages) : array();
} }
/** /**

View File

@ -125,4 +125,22 @@ class CompositeRepositoryTest extends TestCase
$this->assertEquals(2, count($repo), "Should return '2' for count(\$repo)"); $this->assertEquals(2, count($repo), "Should return '2' for count(\$repo)");
} }
/**
* @dataProvider provideMethodCalls
*/
public function testNoRepositories($method, $args)
{
$repo = new CompositeRepository(array());
call_user_func_array(array($repo, $method), $args);
}
public function provideMethodCalls()
{
return array(
array('findPackages', array('foo')),
array('search', array('foo')),
array('getPackages', array()),
);
}
} }