public function testFilteredInterface() { $chain = new \Application\AppointmentChain(); $item1 = new \Application\AppointmentItem(self::$arrayToTest1); $item2 = new \Application\AppointmentItem(self::$arrayToTest2); $item3 = new \Application\AppointmentItem(self::$arrayToTest3); $chain->add($item1); $chain->add($item2); $chain->add($item3); $chain->applyFilter(new \DateTime('2015-10-15 12:00:00')); $chain->rewind(); $this->assertEquals(2, $chain->count()); $this->assertEquals($item2, $chain->current()); $chain->next(); $this->assertEquals($item3, $chain->current()); $chain->next(); $this->assertFalse($chain->valid()); $this->assertFalse($chain->isMeetFilter($item1)); $this->assertTrue($chain->isMeetFilter($item2)); $this->assertTrue($chain->isMeetFilter($item3)); $this->assertEquals($item1, $chain->get(10)); $this->assertEquals($item2, $chain->get(20)); $this->assertEquals($item3, $chain->get(30)); $this->assertEquals(null, $chain->get(40)); $chain->setChainId(50); $this->assertEquals(50, $item1->getChain()); $this->assertEquals(50, $item2->getChain()); $this->assertEquals(50, $item3->getChain()); }