Finder.fileInfo.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Finder result test.
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\FileInfo;
  7. use Nette\Utils\Finder;
  8. use Tester\Assert;
  9. require __DIR__ . '/../bootstrap.php';
  10. test('absolute path', function () {
  11. $files = Finder::findFiles(basename(__FILE__))
  12. ->in(__DIR__)
  13. ->collect();
  14. Assert::equal(
  15. [new FileInfo(__FILE__)],
  16. $files,
  17. );
  18. $file = reset($files);
  19. Assert::same(__FILE__, (string) $file);
  20. Assert::same('', $file->getRelativePath());
  21. Assert::same('Finder.fileInfo.phpt', $file->getRelativePathname());
  22. });
  23. test('relative path', function () {
  24. $files = Finder::findFiles('readme')
  25. ->from('fixtures.finder')
  26. ->collect();
  27. $ds = DIRECTORY_SEPARATOR;
  28. Assert::same('subdir', $files[0]->getRelativePath());
  29. Assert::same("subdir{$ds}readme", $files[0]->getRelativePathname());
  30. });
  31. test('read', function () {
  32. $file = new FileInfo('fixtures.finder/file.txt');
  33. Assert::true(str_starts_with($file->read(), 'File for testing purposes'));
  34. });
  35. test('write', function () {
  36. $file = new FileInfo(getTempDir() . '/foo');
  37. $file->write('foo');
  38. Assert::same('foo', $file->read());
  39. });