/** * @test */ public function shouldCorrectlyConvertOrderToDetailsAndSetItBack() { $order = new Order(); $order->setNumber('theNumber'); $order->setCurrencyCode('USD'); $order->setTotalAmount(123); $order->setDescription('the description'); $order->setClientId('theClientId'); $order->setClientEmail('theClientEmail'); $action = new FillOrderDetailsAction(); $action->execute(new FillOrderDetails($order)); $details = $order->getDetails(); $this->assertNotEmpty($details); $this->assertArrayHasKey('amount', $details); $this->assertEquals(1.23, $details['amount']); $this->assertArrayHasKey('invoice_num', $details); $this->assertEquals('theNumber', $details['invoice_num']); $this->assertArrayHasKey('description', $details); $this->assertEquals('the description', $details['description']); $this->assertArrayHasKey('cust_id', $details); $this->assertEquals('theClientId', $details['cust_id']); $this->assertArrayHasKey('email', $details); $this->assertEquals('theClientEmail', $details['email']); }
/** * @test */ public function shouldCorrectlyConvertOrderToDetailsAndSetItBack() { $order = new Order(); $order->setNumber('theNumber'); $order->setCurrencyCode('USD'); $order->setTotalAmount(123); $order->setDescription('the description'); $order->setClientId('theClientId'); $order->setClientEmail('theClientEmail'); $action = new FillOrderDetailsAction(); $action->execute(new FillOrderDetails($order)); $details = $order->getDetails(); $this->assertNotEmpty($details); $this->assertArrayHasKey('AMOUNT', $details); $this->assertEquals(123, $details['AMOUNT']); $this->assertArrayHasKey('ORDERID', $details); $this->assertEquals('theNumber', $details['ORDERID']); $this->assertArrayHasKey('DESCRIPTION', $details); $this->assertEquals('the description', $details['DESCRIPTION']); $this->assertArrayHasKey('CLIENTIDENT', $details); $this->assertEquals('theClientId', $details['CLIENTIDENT']); $this->assertArrayHasKey('CLIENTEMAIL', $details); $this->assertEquals('theClientEmail', $details['CLIENTEMAIL']); }
/** * {@inheritDoc} * * @param $request Capture */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); /** @var $payment PaymentInterface */ $payment = $request->getModel(); $order = $payment->getOrder(); $payumOrder = new Order(); $payumOrder->setNumber($order->getNumber()); $payumOrder->setTotalAmount($order->getTotal()); $payumOrder->setCurrencyCode($order->getCurrency()); $payumOrder->setClientEmail($order->getEmail()); $payumOrder->setClientId($order->getUser() ? $order->getUser()->getId() : $order->getEmail()); $payumOrder->setDescription(sprintf('Order containing %d items for a total of %01.2f', $order->getItems()->count(), $order->getTotal() / 100)); $payumOrder->setDetails($payment->getDetails()); try { $request->setModel($payumOrder); $this->payment->execute($request); $payment->setDetails($payumOrder->getDetails()); $request->setModel($payment); } catch (\Exception $e) { $payment->setDetails($payumOrder->getDetails()); $request->setModel($payment); throw $e; } }
/** * @test */ public function shouldCorrectlyConvertOrderToDetailsAndSetItBack() { $order = new Order(); $order->setNumber('theNumber'); $order->setCurrencyCode('USD'); $order->setTotalAmount(123); $order->setDescription('the description'); $order->setClientId('theClientId'); $order->setClientEmail('theClientEmail'); $action = new FillOrderDetailsAction(); $action->execute(new FillOrderDetails($order)); $details = $order->getDetails(); $this->assertNotEmpty($details); $this->assertArrayHasKey('INVNUM', $details); $this->assertEquals('theNumber', $details['INVNUM']); $this->assertArrayHasKey('PAYMENTREQUEST_0_AMT', $details); $this->assertEquals(1.23, $details['PAYMENTREQUEST_0_AMT']); $this->assertArrayHasKey('PAYMENTREQUEST_0_CURRENCYCODE', $details); $this->assertEquals('USD', $details['PAYMENTREQUEST_0_CURRENCYCODE']); }
/** * @test */ public function shouldCorrectlyConvertOrderToDetailsAndSetItBack() { $order = new Order(); $order->setNumber('theNumber'); $order->setCurrencyCode('USD'); $order->setTotalAmount(123); $order->setDescription('the description'); $order->setClientId('theClientId'); $order->setClientEmail('theClientEmail'); $action = new FillOrderDetailsAction(); $action->execute(new FillOrderDetails($order)); $details = $order->getDetails(); $this->assertNotEmpty($details); $this->assertArrayHasKey('price', $details); $this->assertEquals(123, $details['price']); $this->assertArrayHasKey('currency', $details); $this->assertEquals('USD', $details['currency']); $this->assertArrayHasKey('orderId', $details); $this->assertEquals('theNumber', $details['orderId']); $this->assertArrayHasKey('description', $details); $this->assertEquals('the description', $details['description']); // should not work if we pass anything. Not sure what it should be $this->assertArrayHasKey('clientIdentifier', $details); $this->assertEquals('', $details['clientIdentifier']); $this->assertArrayHasKey('autoPay', $details); $this->assertEquals(false, $details['autoPay']); }