/** * @test */ public function sourceMatching() { $source = $this->getMockBuilder(SourceInterface::class)->getMock(); $source->method('getName')->willReturn('my_source'); $this->assertTrue(SourceFilterUtil::matches($source, array('name' => 'my_source'))); $this->assertTrue(SourceFilterUtil::matches($source, array('names' => array('my_source', 'your_source', 'their_source')))); $this->assertFalse(SourceFilterUtil::matches($source, array('names' => array('my_source', 'your_source', 'their_source'), 'name' => 'non_existing'))); }
/** * Filter sources. * * Available filter criteria: * * name: string * * names: string[] * * @param SourceInterface[] $sources Sources to filter. * @param array $filters Filter criteria. * * @return SourceInterface[] */ private function filter($sources, array $filters = array()) { $result = array(); foreach ($sources as $source) { if (SourceFilterUtil::matches($source, $filters)) { $result[] = $source; } } return $result; }