public function testFindPackagesByName() { $arrayRepoOne = new ArrayRepository(); $arrayRepoOne->addPackage($this->getPackage('foo', '1')); $arrayRepoOne->addPackage($this->getPackage('foo', '2')); $arrayRepoOne->addPackage($this->getPackage('bat', '1')); $arrayRepoTwo = new ArrayRepository(); $arrayRepoTwo->addPackage($this->getPackage('bar', '1')); $arrayRepoTwo->addPackage($this->getPackage('bar', '2')); $arrayRepoTwo->addPackage($this->getPackage('foo', '3')); $repo = new CompositeRepository(array($arrayRepoOne, $arrayRepoTwo)); $bats = $repo->findPackagesByName('bat'); $this->assertCount(1, $bats, "Should find one instance of 'bats' (defined in just one repository)"); $this->assertEquals('bat', $bats[0]->getName(), "Should find packages named 'bat'"); $bars = $repo->findPackagesByName('bar'); $this->assertCount(2, $bars, "Should find two instances of 'bar' (both defined in the same repository)"); $this->assertEquals('bar', $bars[0]->getName(), "Should find packages named 'bar'"); $foos = $repo->findPackagesByName('foo'); $this->assertCount(3, $foos, "Should find three instances of 'foo' (two defined in one repository, the third in the other)"); $this->assertEquals('foo', $foos[0]->getName(), "Should find packages named 'foo'"); }