Yaffs site version 1.1
[yaffs-website] / vendor / psy / psysh / test / Psy / Test / Formatter / CodeFormatterTest.php
diff --git a/vendor/psy/psysh/test/Psy/Test/Formatter/CodeFormatterTest.php b/vendor/psy/psysh/test/Psy/Test/Formatter/CodeFormatterTest.php
new file mode 100644 (file)
index 0000000..aa02871
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+
+/*
+ * This file is part of Psy Shell.
+ *
+ * (c) 2012-2017 Justin Hileman
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Psy\Test\Formatter;
+
+use Psy\Formatter\CodeFormatter;
+
+class CodeFormatterTest extends \PHPUnit_Framework_TestCase
+{
+    private function ignoreThisMethod($arg)
+    {
+        echo 'whot!';
+    }
+
+    public function testFormat()
+    {
+        $expected = <<<'EOS'
+  > 18|     private function ignoreThisMethod($arg)
+    19|     {
+    20|         echo 'whot!';
+    21|     }
+EOS;
+
+        $formatted = CodeFormatter::format(new \ReflectionMethod($this, 'ignoreThisMethod'));
+        $formattedWithoutColors = preg_replace('#' . chr(27) . '\[\d\d?m#', '', $formatted);
+
+        $this->assertEquals($expected, rtrim($formattedWithoutColors));
+        $this->assertNotEquals($expected, rtrim($formatted));
+    }
+
+    /**
+     * @dataProvider filenames
+     * @expectedException \Psy\Exception\RuntimeException
+     */
+    public function testCodeFormatterThrowsException($filename)
+    {
+        $reflector = $this->getMockBuilder('ReflectionClass')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $reflector
+            ->expects($this->once())
+            ->method('getFileName')
+            ->will($this->returnValue($filename));
+
+        CodeFormatter::format($reflector);
+    }
+
+    public function filenames()
+    {
+        return array(array(null), array('not a file'));
+    }
+}