Hoa central
FileSystem.php
Go to the documentation of this file.
1 <?php
2 
37 namespace Hoa\Iterator\Test\Unit;
38 
39 use Hoa\Iterator as LUT;
40 use Hoa\Test;
41 
51 {
52  public function case_classic()
53  {
54  $this
55  ->given(
56  $root = resolve('hoa://Test/Vfs/Root?type=directory'),
57  resolve('hoa://Test/Vfs/Root/.'),
58  resolve('hoa://Test/Vfs/Root/..'),
59  resolve('hoa://Test/Vfs/Root/A'),
60  resolve('hoa://Test/Vfs/Root/B'),
61  $iterator = new LUT\FileSystem($root),
62  $result = []
63  )
64  ->when(function () use ($iterator, &$result) {
65  foreach ($iterator as $pathname => $file) {
66  $this
67  ->object($file)
68  ->isInstanceOf('SplFileInfo');
69 
70  $result[basename($pathname)] = $file->getFilename();
71  }
72  })
73  ->array($result)
74  ->isEqualTo([
75  'A' => 'A',
76  'B' => 'B'
77  ]);
78  }
79 
80  public function case_splFileClassInfo()
81  {
82  $this
83  ->given(
84  $splFileInfo = 'Hoa\Iterator\SplFileInfo',
85  $root = resolve('hoa://Test/Vfs/Root?type=directory'),
86  resolve('hoa://Test/Vfs/Root/a'),
87  resolve('hoa://Test/Vfs/Root/b'),
88  resolve('hoa://Test/Vfs/Root/c'),
89  resolve('hoa://Test/Vfs/Root/d'),
90  resolve('hoa://Test/Vfs/Root/e'),
91  resolve('hoa://Test/Vfs/Root/f'),
92  $iterator = new LUT\FileSystem(
93  $root,
94  LUT\FileSystem::CURRENT_AS_FILEINFO,
95  $splFileInfo
96  ),
97  $result = []
98  )
99  ->when(function () use ($iterator, $splFileInfo, &$result) {
100  foreach ($iterator as $file) {
101  $this
102  ->object($file)
103  ->isInstanceOf($splFileInfo);
104 
105  $result[] = $file->getFilename();
106  }
107  })
108  ->then
109  ->array($result)
110  ->isEqualTo([
111  'a',
112  'b',
113  'c',
114  'd',
115  'e',
116  'f'
117  ]);
118  }
119 }