Finder.multiple.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Finder multiple sources.
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Finder;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. function export($iterator)
  10. {
  11. $arr = [];
  12. foreach ($iterator as $key => $value) {
  13. $arr[] = strtr($key, '\\', '/');
  14. }
  15. sort($arr);
  16. return $arr;
  17. }
  18. test('recursive', function () {
  19. $finder = Finder::find('*')->from('fixtures.finder/subdir/subdir2', 'fixtures.finder/images');
  20. Assert::same([
  21. 'fixtures.finder/images/logo.gif',
  22. 'fixtures.finder/subdir/subdir2/file.txt',
  23. ], export($finder));
  24. $finder = Finder::find('*')->from(['fixtures.finder/subdir/subdir2', 'fixtures.finder/images']);
  25. Assert::same([
  26. 'fixtures.finder/images/logo.gif',
  27. 'fixtures.finder/subdir/subdir2/file.txt',
  28. ], export($finder));
  29. });
  30. test('non-recursive', function () {
  31. $finder = Finder::find('*')->in('fixtures.finder/subdir/subdir2', 'fixtures.finder/images');
  32. Assert::same([
  33. 'fixtures.finder/images/logo.gif',
  34. 'fixtures.finder/subdir/subdir2/file.txt',
  35. ], export($finder));
  36. $finder = Finder::find('*')->in(['fixtures.finder/subdir/subdir2', 'fixtures.finder/images']);
  37. Assert::same([
  38. 'fixtures.finder/images/logo.gif',
  39. 'fixtures.finder/subdir/subdir2/file.txt',
  40. ], export($finder));
  41. });