/** * @param \Iterator|\SplFileInfo[] $fileInfoIterator note: only \SplFileInfo allowed in this iterator * * @throws InvalidFileInfo In case of iterator not contains only SplFileInfo */ public function __construct(\Iterator $fileInfoIterator) { foreach ($fileInfoIterator as $fileInfo) { if (!$fileInfo instanceof \SplFileInfo) { throw InvalidFileInfo::fromNonSplFileInfo($fileInfo); } } $this->fileSystemIterator = $fileInfoIterator; }
/** * @dataProvider nonSplFileInfoProvider * * @param string $expectedMessage * @param mixed $value * * @return void */ public function testFromNonSplFileInfo($expectedMessage, $value) { $exception = InvalidFileInfo::fromNonSplFileInfo($value); self::assertInstanceOf(InvalidFileInfo::class, $exception); self::assertSame($expectedMessage, $exception->getMessage()); }