/** * @test */ public function rateTypeMatching() { $configuration = new Configuration('EUR', 'my_rate_type', 'my_source'); $this->assertTrue(ConfigurationFilterUtil::matches($configuration, array('rateType' => 'my_rate_type'))); $this->assertTrue(ConfigurationFilterUtil::matches($configuration, array('rateTypes' => array('my_rate_type', 'your_rate_type', 'their_rate_type')))); $this->assertFalse(ConfigurationFilterUtil::matches($configuration, array('rateTypes' => array('my_rate_type', 'your_rate_type', 'their_rate_type'), 'rateType' => 'non_existing'))); }
/** * Get configurations that matches given filter criteria. * * @param Configuration[] $configurations Configurations to filter. * @param array $criteria Filter criteria. * @return Configuration[] Matched configurations. */ private function filter($configurations, array $criteria) { $result = array(); /** * @var Configuration $configuration */ foreach ($configurations as $configuration) { if (ConfigurationFilterUtil::matches($configuration, $criteria)) { $result[] = $configuration; } } return $result; }