1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Finder\Tests\Iterator;
13
14use Symfony\Component\Finder\Iterator\CustomFilterIterator;
15
16class CustomFilterIteratorTest extends IteratorTestCase
17{
18    /**
19     * @expectedException \InvalidArgumentException
20     */
21    public function testWithInvalidFilter()
22    {
23        new CustomFilterIterator(new Iterator(), array('foo'));
24    }
25
26    /**
27     * @dataProvider getAcceptData
28     */
29    public function testAccept($filters, $expected)
30    {
31        $inner = new Iterator(array('test.php', 'test.py', 'foo.php'));
32
33        $iterator = new CustomFilterIterator($inner, $filters);
34
35        $this->assertIterator($expected, $iterator);
36    }
37
38    public function getAcceptData()
39    {
40        return array(
41            array(array(function (\SplFileInfo $fileinfo) { return false; }), array()),
42            array(array(function (\SplFileInfo $fileinfo) { return preg_match('/^test/', $fileinfo) > 0; }), array('test.php', 'test.py')),
43            array(array('is_dir'), array()),
44        );
45    }
46}
47