TYPO3  7.6
PathFilterIteratorTest.php
Go to the documentation of this file.
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 
12 namespace Symfony\Component\Finder\Tests\Iterator;
13 
15 
17 {
21  public function testFilter(\Iterator $inner, array $matchPatterns, array $noMatchPatterns, array $resultArray)
22  {
23  $iterator = new PathFilterIterator($inner, $matchPatterns, $noMatchPatterns);
24  $this->assertIterator($resultArray, $iterator);
25  }
26 
27  public function getTestFilterData()
28  {
29  $inner = new MockFileListIterator();
30 
31  //PATH: A/B/C/abc.dat
32  $inner[] = new MockSplFileInfo(array(
33  'name' => 'abc.dat',
34  'relativePathname' => 'A'.DIRECTORY_SEPARATOR.'B'.DIRECTORY_SEPARATOR.'C'.DIRECTORY_SEPARATOR.'abc.dat',
35  ));
36 
37  //PATH: A/B/ab.dat
38  $inner[] = new MockSplFileInfo(array(
39  'name' => 'ab.dat',
40  'relativePathname' => 'A'.DIRECTORY_SEPARATOR.'B'.DIRECTORY_SEPARATOR.'ab.dat',
41  ));
42 
43  //PATH: A/a.dat
44  $inner[] = new MockSplFileInfo(array(
45  'name' => 'a.dat',
46  'relativePathname' => 'A'.DIRECTORY_SEPARATOR.'a.dat',
47  ));
48 
49  //PATH: copy/A/B/C/abc.dat.copy
50  $inner[] = new MockSplFileInfo(array(
51  'name' => 'abc.dat.copy',
52  'relativePathname' => 'copy'.DIRECTORY_SEPARATOR.'A'.DIRECTORY_SEPARATOR.'B'.DIRECTORY_SEPARATOR.'C'.DIRECTORY_SEPARATOR.'abc.dat',
53  ));
54 
55  //PATH: copy/A/B/ab.dat.copy
56  $inner[] = new MockSplFileInfo(array(
57  'name' => 'ab.dat.copy',
58  'relativePathname' => 'copy'.DIRECTORY_SEPARATOR.'A'.DIRECTORY_SEPARATOR.'B'.DIRECTORY_SEPARATOR.'ab.dat',
59  ));
60 
61  //PATH: copy/A/a.dat.copy
62  $inner[] = new MockSplFileInfo(array(
63  'name' => 'a.dat.copy',
64  'relativePathname' => 'copy'.DIRECTORY_SEPARATOR.'A'.DIRECTORY_SEPARATOR.'a.dat',
65  ));
66 
67  return array(
68  array($inner, array('/^A/'), array(), array('abc.dat', 'ab.dat', 'a.dat')),
69  array($inner, array('/^A\/B/'), array(), array('abc.dat', 'ab.dat')),
70  array($inner, array('/^A\/B\/C/'), array(), array('abc.dat')),
71  array($inner, array('/A\/B\/C/'), array(), array('abc.dat', 'abc.dat.copy')),
72 
73  array($inner, array('A'), array(), array('abc.dat', 'ab.dat', 'a.dat', 'abc.dat.copy', 'ab.dat.copy', 'a.dat.copy')),
74  array($inner, array('A/B'), array(), array('abc.dat', 'ab.dat', 'abc.dat.copy', 'ab.dat.copy')),
75  array($inner, array('A/B/C'), array(), array('abc.dat', 'abc.dat.copy')),
76 
77  array($inner, array('copy/A'), array(), array('abc.dat.copy', 'ab.dat.copy', 'a.dat.copy')),
78  array($inner, array('copy/A/B'), array(), array('abc.dat.copy', 'ab.dat.copy')),
79  array($inner, array('copy/A/B/C'), array(), array('abc.dat.copy')),
80 
81  );
82  }
83 }