annotate vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of the Symfony package.
Chris@0 5 *
Chris@0 6 * (c) Fabien Potencier <fabien@symfony.com>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view the LICENSE
Chris@0 9 * file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Symfony\Component\Finder\Tests\Iterator;
Chris@0 13
Chris@0 14 class MockSplFileInfo extends \SplFileInfo
Chris@0 15 {
Chris@0 16 const TYPE_DIRECTORY = 1;
Chris@0 17 const TYPE_FILE = 2;
Chris@0 18 const TYPE_UNKNOWN = 3;
Chris@0 19
Chris@0 20 private $contents = null;
Chris@0 21 private $mode = null;
Chris@0 22 private $type = null;
Chris@0 23 private $relativePath = null;
Chris@0 24 private $relativePathname = null;
Chris@0 25
Chris@0 26 public function __construct($param)
Chris@0 27 {
Chris@17 28 if (\is_string($param)) {
Chris@0 29 parent::__construct($param);
Chris@17 30 } elseif (\is_array($param)) {
Chris@17 31 $defaults = [
Chris@17 32 'name' => 'file.txt',
Chris@17 33 'contents' => null,
Chris@17 34 'mode' => null,
Chris@17 35 'type' => null,
Chris@17 36 'relativePath' => null,
Chris@17 37 'relativePathname' => null,
Chris@17 38 ];
Chris@0 39 $defaults = array_merge($defaults, $param);
Chris@0 40 parent::__construct($defaults['name']);
Chris@0 41 $this->setContents($defaults['contents']);
Chris@0 42 $this->setMode($defaults['mode']);
Chris@0 43 $this->setType($defaults['type']);
Chris@0 44 $this->setRelativePath($defaults['relativePath']);
Chris@0 45 $this->setRelativePathname($defaults['relativePathname']);
Chris@0 46 } else {
Chris@0 47 throw new \RuntimeException(sprintf('Incorrect parameter "%s"', $param));
Chris@0 48 }
Chris@0 49 }
Chris@0 50
Chris@0 51 public function isFile()
Chris@0 52 {
Chris@0 53 if (null === $this->type) {
Chris@0 54 return false !== strpos($this->getFilename(), 'file');
Chris@0 55 }
Chris@0 56
Chris@0 57 return self::TYPE_FILE === $this->type;
Chris@0 58 }
Chris@0 59
Chris@0 60 public function isDir()
Chris@0 61 {
Chris@0 62 if (null === $this->type) {
Chris@0 63 return false !== strpos($this->getFilename(), 'directory');
Chris@0 64 }
Chris@0 65
Chris@0 66 return self::TYPE_DIRECTORY === $this->type;
Chris@0 67 }
Chris@0 68
Chris@0 69 public function isReadable()
Chris@0 70 {
Chris@0 71 if (null === $this->mode) {
Chris@0 72 return preg_match('/r\+/', $this->getFilename());
Chris@0 73 }
Chris@0 74
Chris@0 75 return preg_match('/r\+/', $this->mode);
Chris@0 76 }
Chris@0 77
Chris@0 78 public function getContents()
Chris@0 79 {
Chris@0 80 return $this->contents;
Chris@0 81 }
Chris@0 82
Chris@0 83 public function setContents($contents)
Chris@0 84 {
Chris@0 85 $this->contents = $contents;
Chris@0 86 }
Chris@0 87
Chris@0 88 public function setMode($mode)
Chris@0 89 {
Chris@0 90 $this->mode = $mode;
Chris@0 91 }
Chris@0 92
Chris@0 93 public function setType($type)
Chris@0 94 {
Chris@17 95 if (\is_string($type)) {
Chris@0 96 switch ($type) {
Chris@0 97 case 'directory':
Chris@0 98 case 'd':
Chris@0 99 $this->type = self::TYPE_DIRECTORY;
Chris@0 100 break;
Chris@0 101 case 'file':
Chris@0 102 case 'f':
Chris@0 103 $this->type = self::TYPE_FILE;
Chris@0 104 break;
Chris@0 105 default:
Chris@0 106 $this->type = self::TYPE_UNKNOWN;
Chris@0 107 }
Chris@0 108 } else {
Chris@0 109 $this->type = $type;
Chris@0 110 }
Chris@0 111 }
Chris@0 112
Chris@0 113 public function setRelativePath($relativePath)
Chris@0 114 {
Chris@0 115 $this->relativePath = $relativePath;
Chris@0 116 }
Chris@0 117
Chris@0 118 public function setRelativePathname($relativePathname)
Chris@0 119 {
Chris@0 120 $this->relativePathname = $relativePathname;
Chris@0 121 }
Chris@0 122
Chris@0 123 public function getRelativePath()
Chris@0 124 {
Chris@0 125 return $this->relativePath;
Chris@0 126 }
Chris@0 127
Chris@0 128 public function getRelativePathname()
Chris@0 129 {
Chris@0 130 return $this->relativePathname;
Chris@0 131 }
Chris@0 132 }