You are here

vfsStreamWrapperUnregisterTestCase.php in Zircon Profile 8.0

Namespace

org\bovigo\vfs

File

vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperUnregisterTestCase.php
View source
<?php

/**
 * This file is part of vfsStream.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package  org\bovigo\vfs
 */
namespace org\bovigo\vfs;


/**
 * Test for org\bovigo\vfs\vfsStreamWrapper.
 */
class vfsStreamWrapperUnregisterTestCase extends \PHPUnit_Framework_TestCase {

  /**
   * Unregistering a registered URL wrapper.
   *
   * @test
   */
  public function unregisterRegisteredUrlWrapper() {
    vfsStreamWrapper::register();
    vfsStreamWrapper::unregister();
    $this
      ->assertNotContains(vfsStream::SCHEME, stream_get_wrappers());
  }

  /**
   * Unregistering a third party wrapper for vfs:// fails.
   *
   * @test
   * @expectedException org\bovigo\vfs\vfsStreamException
   * @runInSeparateProcess
   */
  public function unregisterThirdPartyVfsScheme() {

    // Unregister possible registered URL wrapper.
    vfsStreamWrapper::unregister();
    $mock = $this
      ->getMock('org\\bovigo\\vfs\\vfsStreamWrapper');
    stream_wrapper_register(vfsStream::SCHEME, get_class($mock));
    vfsStreamWrapper::unregister();
  }

  /**
   * Unregistering when not in registered state will fail.
   *
   * @test
   * @expectedException org\bovigo\vfs\vfsStreamException
   * @runInSeparateProcess
   */
  public function unregisterWhenNotInRegisteredState() {
    vfsStreamWrapper::register();
    stream_wrapper_unregister(vfsStream::SCHEME);
    vfsStreamWrapper::unregister();
  }

  /**
   * Unregistering while not registers won't fail.
   *
   * @test
   */
  public function unregisterWhenNotRegistered() {

    // Unregister possible registered URL wrapper.
    vfsStreamWrapper::unregister();
    $this
      ->assertNotContains(vfsStream::SCHEME, stream_get_wrappers());
    vfsStreamWrapper::unregister();
  }

}