Version 1
[yaffs-website] / vendor / mikey179 / vfsStream / src / test / php / org / bovigo / vfs / vfsStreamWrapperUnregisterTestCase.php
diff --git a/vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperUnregisterTestCase.php b/vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperUnregisterTestCase.php
new file mode 100644 (file)
index 0000000..2457304
--- /dev/null
@@ -0,0 +1,75 @@
+<?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();
+    }
+}