/** * @test */ public function dateMatching() { $rate = new Rate('my_source', 100, 'EUR', 'my_rate_type', new \DateTime('now'), 'EUR'); $this->assertTrue(RateFilterUtil::matches($rate, array('onDate' => new \DateTime('now')))); $this->assertFalse(RateFilterUtil::matches($rate, array('onDate' => new \DateTime('tomorrow')))); $this->assertTrue(RateFilterUtil::matches($rate, array('dateTo' => new \DateTime('tomorrow')))); $this->assertFalse(RateFilterUtil::matches($rate, array('dateFrom' => new \DateTime('tomorrow')))); }
/** * {@inheritdoc} */ public function all(array $criteria = array()) { if (count($criteria) == 0) { return $this->rates; } else { $result = array(); /** * @var RateInterface $rate */ foreach ($this->rates as $rate) { if (RateFilterUtil::matches($rate, $criteria)) { $result[] = $rate; } } return $this->paginate($result, $criteria); } }