| Viewing file:  MockSplFileInfo.php (3.44 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?php
 /*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
 
 namespace Symfony\Component\Finder\Tests\Iterator;
 
 class MockSplFileInfo extends \SplFileInfo
 {
 const   TYPE_DIRECTORY = 1;
 const   TYPE_FILE      = 2;
 const   TYPE_UNKNOWN   = 3;
 
 private $contents         = null;
 private $mode             = null;
 private $type             = null;
 private $relativePath     = null;
 private $relativePathname = null;
 
 public function __construct($param)
 {
 if (is_string($param)) {
 parent::__construct($param);
 } elseif (is_array($param)) {
 $defaults = array(
 'name'             => 'file.txt',
 'contents'         => null,
 'mode'             => null,
 'type'             => null,
 'relativePath'     => null,
 'relativePathname' => null,
 );
 $defaults = array_merge($defaults, $param);
 parent::__construct($defaults['name']);
 $this->setContents($defaults['contents']);
 $this->setMode($defaults['mode']);
 $this->setType($defaults['type']);
 $this->setRelativePath($defaults['relativePath']);
 $this->setRelativePathname($defaults['relativePathname']);
 } else {
 throw new \RuntimeException(sprintf('Incorrect parameter "%s"', $param));
 }
 }
 
 public function isFile()
 {
 if ($this->type === null) {
 return preg_match('/file/', $this->getFilename());
 };
 
 return self::TYPE_FILE === $this->type;
 }
 
 public function isDir()
 {
 if ($this->type === null) {
 return preg_match('/directory/', $this->getFilename());
 }
 
 return self::TYPE_DIRECTORY === $this->type;
 }
 
 public function isReadable()
 {
 if ($this->mode === null) {
 return preg_match('/r\+/', $this->getFilename());
 }
 
 return preg_match('/r\+/', $this->mode);
 }
 
 public function getContents()
 {
 return $this->contents;
 }
 
 public function setContents($contents)
 {
 $this->contents = $contents;
 }
 
 public function setMode($mode)
 {
 $this->mode = $mode;
 }
 
 public function setType($type)
 {
 if (is_string($type)) {
 switch ($type) {
 case 'directory':
 $this->type = self::TYPE_DIRECTORY;
 case 'd':
 $this->type = self::TYPE_DIRECTORY;
 break;
 case 'file':
 $this->type = self::TYPE_FILE;
 case 'f':
 $this->type = self::TYPE_FILE;
 break;
 default:
 $this->type = self::TYPE_UNKNOWN;
 }
 } else {
 $this->type = $type;
 }
 }
 
 public function setRelativePath($relativePath)
 {
 $this->relativePath = $relativePath;
 }
 
 public function setRelativePathname($relativePathname)
 {
 $this->relativePathname = $relativePathname;
 }
 
 public function getRelativePath()
 {
 return $this->relativePath;
 }
 
 public function getRelativePathname()
 {
 return $this->relativePathname;
 }
 }
 
 |