You are here

MockSplFileInfo.php in Database Sanitize 7

File

vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php
View source
<?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 (null === $this->type) {
      return false !== strpos($this
        ->getFilename(), 'file');
    }
    return self::TYPE_FILE === $this->type;
  }
  public function isDir() {
    if (null === $this->type) {
      return false !== strpos($this
        ->getFilename(), 'directory');
    }
    return self::TYPE_DIRECTORY === $this->type;
  }
  public function isReadable() {
    if (null === $this->mode) {
      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':
        case 'd':
          $this->type = self::TYPE_DIRECTORY;
          break;
        case '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;
  }

}

Classes

Namesort descending Description
MockSplFileInfo