/** * Verify that paths can be set in the Sqon using an iterator. */ public function testAddPathsUsingAnIterator() { $this->eventDispatcher->addListener(BeforeSetPathsUsingIteratorEvent::NAME, function () { $this->events[BeforeSetPathsUsingIteratorEvent::NAME] = true; }); $this->eventDispatcher->addListener(AfterSetPathsUsingIteratorEvent::NAME, function () { $this->events[AfterSetPathsUsingIteratorEvent::NAME] = true; }); $path = new Memory('test'); $iterator = new ArrayIterator(['.\\dir\\to\\..\\test.php' => $path]); self::assertSame($this->sqon, $this->sqon->setPathsUsingIterator($iterator), 'The iterator setter did not return a fluent interface.'); self::assertTrue($this->events[BeforeSetPathsUsingIteratorEvent::NAME], sprintf('The "%s" event was not dispatched.', BeforeSetPathsUsingIteratorEvent::NAME)); self::assertTrue($this->events[AfterSetPathsUsingIteratorEvent::NAME], sprintf('The "%s" event was not dispatched.', AfterSetPathsUsingIteratorEvent::NAME)); self::assertEquals($path, $this->sqon->getPath('dir/test.php'), 'The path from the iterator was not added.'); }