function it_inserts_constructor_in_class_with_methods_and_other_stuff(Editor $editor, File $file, Method $method, PrettyPrinter $prettyPrinter)
 {
     $insertConstructor = new InsertConstructor($file->getWrappedObject(), $method->getWrappedObject());
     $editor->hasBelow($file, InsertConstructorHandler::CONSTRUCTOR, 0)->willReturn(false);
     $editor->hasBelow($file, InsertConstructorHandler::METHOD, 0)->willReturn(true);
     $editor->jumpBelow($file, InsertConstructorHandler::METHOD, 0)->shouldBeCalled();
     $editor->insertAbove($file, '')->shouldBeCalled();
     $prettyPrinter->generateCode($method)->willReturn(self::GENERATED_CODE);
     $editor->insertAbove($file, self::GENERATED_CODE)->shouldBeCalled();
     $file->decrementCurrentLineNumber(1)->shouldBeCalled();
     $file->getLine()->willReturn('    const CONSTANT = 42;');
     $editor->insertBelow($file, '')->shouldBeCalled();
     $this->handle($insertConstructor);
 }
 function it_inserts_property_in_class_with_methods(Editor $editor, File $file, PrettyPrinter $prettyPrinter, Property $property)
 {
     $insertProperty = new InsertProperty($file->getWrappedObject(), $property->getWrappedObject());
     $property->getName()->willReturn('property');
     $editor->hasBelow($file, '/^    private \\$property;$/', 0)->willReturn(false);
     $editor->hasBelow($file, InsertPropertyHandler::PROPERTY, 0)->willReturn(false);
     $editor->hasBelow($file, InsertPropertyHandler::CONSTANT, 0)->willReturn(false);
     $editor->jumpBelow($file, InsertPropertyHandler::CLASS_OPENING, 0)->shouldBeCalled();
     $prettyPrinter->generateCode($property)->willReturn('    private $property;');
     $editor->insertBelow($file, '    private $property;')->shouldBeCalled();
     $file->incrementCurrentLineNumber(1)->shouldBeCalled();
     $file->getLine()->willReturn('    public function __construct($property)');
     $editor->insertAbove($file, '')->shouldBeCalled();
     $this->handle($insertProperty);
 }