/**
     * @test
     */
    public function shouldExecuteFillOrderDetailsIfStatusNew()
    {
        $order = new Order();

        $testCase = $this;

        $paymentMock = $this->createPaymentMock();
        $paymentMock
            ->expects($this->at(0))
            ->method('execute')
            ->with($this->isInstanceOf('Payum\Core\Request\GetHumanStatus'))
            ->will($this->returnCallback(function (GetHumanStatus $request) {
                $request->markNew();
            }))
        ;
        $paymentMock
            ->expects($this->at(1))
            ->method('execute')
            ->with($this->isInstanceOf('Payum\Core\Request\FillOrderDetails'))
            ->will($this->returnCallback(function (FillOrderDetails $request) use ($testCase, $order) {
                $testCase->assertSame($order, $request->getOrder());
                $testCase->assertNull($request->getToken());
            }))
        ;

        $action = new CaptureOrderAction();
        $action->setPayment($paymentMock);

        $action->execute($capture = new Capture($order));

        $this->assertSame($order, $capture->getFirstModel());
        $this->assertInstanceOf('ArrayAccess', $capture->getModel());
        $this->assertNull($capture->getToken());
    }
 /**
  * @test
  */
 public function shouldExecuteConvertRequestIfStatusNew()
 {
     $payment = new Payment();
     $testCase = $this;
     $gatewayMock = $this->createGatewayMock();
     $gatewayMock->expects($this->at(0))->method('execute')->with($this->isInstanceOf('Payum\\Core\\Request\\GetHumanStatus'))->will($this->returnCallback(function (GetHumanStatus $request) {
         $request->markNew();
     }));
     $gatewayMock->expects($this->at(1))->method('execute')->with($this->isInstanceOf('Payum\\Core\\Request\\Convert'))->will($this->returnCallback(function (Convert $request) use($testCase, $payment) {
         $testCase->assertSame($payment, $request->getSource());
         $testCase->assertSame('array', $request->getTo());
         $testCase->assertNull($request->getToken());
         $request->setResult(array());
     }));
     $action = new CapturePaymentAction();
     $action->setGateway($gatewayMock);
     $action->execute($capture = new Capture($payment));
     $this->assertSame($payment, $capture->getFirstModel());
     $this->assertInstanceOf('ArrayAccess', $capture->getModel());
     $this->assertNull($capture->getToken());
 }