View source
<?php
namespace Symfony\Component\Finder\Tests\Iterator;
use Symfony\Component\Finder\Iterator\DepthRangeFilterIterator;
class DepthRangeFilterIteratorTest extends RealIteratorTestCase {
public function testAccept($minDepth, $maxDepth, $expected) {
$inner = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this
->toAbsolute(), \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST);
$iterator = new DepthRangeFilterIterator($inner, $minDepth, $maxDepth);
$actual = array_keys(iterator_to_array($iterator));
sort($expected);
sort($actual);
$this
->assertEquals($expected, $actual);
}
public function getAcceptData() {
$lessThan1 = array(
'.git',
'test.py',
'foo',
'test.php',
'toto',
'.foo',
'.bar',
'foo bar',
);
$lessThanOrEqualTo1 = array(
'.git',
'test.py',
'foo',
'foo/bar.tmp',
'test.php',
'toto',
'toto/.git',
'.foo',
'.foo/.bar',
'.bar',
'foo bar',
'.foo/bar',
);
$graterThanOrEqualTo1 = array(
'toto/.git',
'foo/bar.tmp',
'.foo/.bar',
'.foo/bar',
);
$equalTo1 = array(
'toto/.git',
'foo/bar.tmp',
'.foo/.bar',
'.foo/bar',
);
return array(
array(
0,
0,
$this
->toAbsolute($lessThan1),
),
array(
0,
1,
$this
->toAbsolute($lessThanOrEqualTo1),
),
array(
2,
PHP_INT_MAX,
array(),
),
array(
1,
PHP_INT_MAX,
$this
->toAbsolute($graterThanOrEqualTo1),
),
array(
1,
1,
$this
->toAbsolute($equalTo1),
),
);
}
}