protected function execute(InputInterface $input, OutputInterface $output)
 {
     $file = File::createFromPath($input->getArgument('file'), getcwd());
     $range = LineRange::fromString($input->getArgument('range'));
     $newMethodName = $input->getArgument('newmethod');
     $scanner = new ParserVariableScanner();
     $codeAnalysis = new StaticCodeAnalysis();
     $editor = new PatchEditor(new OutputPatchCommand($output));
     $extractMethod = new ExtractMethod($scanner, $codeAnalysis, $editor);
     $extractMethod->refactor($file, $range, $newMethodName);
 }
    /**
     * @group regression
     * @group GH-4
     */
    public function testVariableUsedBeforeAndAfterExtractedSlice()
    {
        $this->markTestIncomplete('Failing over some invisible whitespace issue?');
        $patch = $this->refactoring->refactor(new File("foo.php", <<<'PHP'
<?php
class Foo
{
    public function main()
    {
        $foo = "bar";
        $baz = array();

        $foo = strtolower($foo);
        $baz[] = $foo;

        return new Something($foo, $baz);
    }
}
PHP
), LineRange::fromString("9-10"), "extract");
        \Phake::verify($this->applyCommand)->apply(<<<'CODE'
--- a/foo.php
+++ b/foo.php
@@ -6,9 +6,16 @@
         $foo = "bar";
         $baz = array();

+        list($foo, $baz) = $this->extract($foo, $baz);
+
+        return new Something($foo, $baz);
+    }
+
+    private function extract($foo, $baz)
+    {
         $foo = strtolower($foo);
         $baz[] = $foo;

-        return new Something($foo, $baz);
+        return array($foo, $baz);
     }
 }

CODE
);
    }