Sonata\Component\Payment\PaymentHandler::getSendbankOrder PHP Метод

getSendbankOrder() публичный Метод

public getSendbankOrder ( Sonata\Component\Basket\BasketInterface $basket )
$basket Sonata\Component\Basket\BasketInterface
    public function getSendbankOrder(BasketInterface $basket)
    {
        $order = $basket->getPaymentMethod()->getTransformer('basket')->transformIntoOrder($basket);
        $event = new PaymentEvent($order);
        $this->getEventDispatcher()->dispatch(PaymentEvents::PRE_SENDBANK, $event);
        // save the order
        $this->orderManager->save($order);
        // assign correct reference number
        $this->referenceGenerator->order($order);
        $event = new PaymentEvent($order);
        $this->getEventDispatcher()->dispatch(PaymentEvents::POST_SENDBANK, $event);
        return $order;
    }

Usage Example

Пример #1
0
 public function testGetSendbankOrder()
 {
     $order = $this->getMock('Sonata\\Component\\Order\\OrderInterface');
     $basketTransformer = $this->getMockBuilder('Sonata\\Component\\Transformer\\BasketTransformer')->disableOriginalConstructor()->getMock();
     $basketTransformer->expects($this->once())->method('transformIntoOrder')->will($this->returnValue($order));
     $payment = $this->getMock('Sonata\\Component\\Payment\\PaymentInterface');
     $payment->expects($this->once())->method('getTransformer')->will($this->returnValue($basketTransformer));
     $om = $this->getMock('Sonata\\Component\\Order\\OrderManagerInterface');
     $om->expects($this->once())->method('save');
     $ps = $this->getMock('Sonata\\Component\\Payment\\PaymentSelectorInterface');
     $ref = $this->getMock('Sonata\\Component\\Generator\\ReferenceInterface');
     $ref->expects($this->once())->method('order');
     $tm = $this->getMock('Sonata\\Component\\Payment\\TransactionManagerInterface');
     $nb = $this->getMockBuilder('Sonata\\NotificationBundle\\Backend\\RuntimeBackend')->disableOriginalConstructor()->getMock();
     $handler = new PaymentHandler($om, $ps, $ref, $tm, $nb);
     $basket = $this->getMock('Sonata\\Component\\Basket\\BasketInterface');
     $basket->expects($this->once())->method('getPaymentMethod')->will($this->returnValue($payment));
     $sendbankOrder = $handler->getSendbankOrder($basket);
     $this->assertEquals($order, $sendbankOrder);
 }