/** * {@inheritdoc} */ public function create(array $values = []) { /** @var \Drupal\payment\Entity\PaymentInterface $payment */ $payment = parent::create($values); $payment_type = $this->paymentTypeManager->createInstance($values['bundle']); $payment_type->setPayment($payment); $payment->get('payment_type')->setValue($payment_type); $status = $this->paymentStatusManager->createInstance('payment_created')->setCreated(time()); $payment->setPaymentStatus($status); return $payment; }
/** * Tests queue service. */ function testQueue() { $category_id_prefix = $this->randomMachineName(); $category_id = $category_id_prefix . $this->randomMachineName(); $payment = Generate::createPayment(2); $payment->setPaymentStatus($this->paymentStatusManager->createInstance('payment_success')); $payment->save(); // Tests save(). $this->queue->save($category_id, $payment->id()); $payment_ids = $this->queue->loadPaymentIds($category_id, $payment->getOwnerId()); $this->assertTrue(in_array($payment->id(), $payment_ids)); // Tests claimPayment(). $this->assertTrue(is_string($this->queue->claimPayment($payment->id()))); $this->assertFalse($this->queue->claimPayment($payment->id())); $acquisition_code = $this->queue->claimPayment($payment->id()); $this->assertTrue(is_string($acquisition_code)); // Tests releaseClaim(). $released = $this->queue->releaseClaim($payment->id(), $acquisition_code); $this->assertTrue($released); $acquisition_code = $this->queue->claimPayment($payment->id()); $this->assertTrue(is_string($acquisition_code)); // Tests acquirePayment(). $acquired = $this->queue->acquirePayment($payment->id(), $acquisition_code); $this->assertTrue($acquired); $acquisition_code = $this->queue->claimPayment($payment->id()); $this->assertFalse($acquisition_code); // Save another payment to the queue, because acquiring the previous one // deleted it. $payment = Generate::createPayment(2); $payment->setPaymentStatus($this->paymentStatusManager->createInstance('payment_success')); $payment->save(); $this->queue->save($category_id, $payment->id()); // Tests loadPaymentIds(). $loaded_payment_ids = $this->queue->loadPaymentIds($category_id, $payment->getOwnerId()); $this->assertEqual($loaded_payment_ids, array($payment->id())); // Tests deleteByPaymentId(). $this->queue->deleteByPaymentId($payment->id()); $payment_ids = $this->queue->loadPaymentIds($category_id, $payment->getOwnerId()); $this->assertFalse(in_array($payment->id(), $payment_ids)); // Tests deleteByCategoryIdPrefix(). $this->queue->save($category_id, $payment->id()); $this->queue->deleteByCategoryIdPrefix($category_id_prefix); $payment_ids = $this->queue->loadPaymentIds($category_id, $payment->getOwnerId()); $this->assertFalse(in_array($payment->id(), $payment_ids)); // Tests deleteByCategoryId(). $this->queue->save($category_id, $payment->id()); $this->queue->deleteByCategoryId($category_id); $payment_ids = $this->queue->loadPaymentIds($category_id, $payment->getOwnerId()); $this->assertFalse(in_array($payment->id(), $payment_ids)); }
/** * Tests setPaymentStatuses() and getPaymentStatuses(). */ protected function testGetPaymentStatuses() { $statuses = array($this->statusManager->createInstance('payment_pending'), $this->statusManager->createInstance('payment_failed')); $this->assertEqual(spl_object_hash($this->payment->setPaymentStatuses($statuses)), spl_object_hash($this->payment)); $retrieved_statuses = $this->payment->getPaymentStatuses(); $this->assertEqual(spl_object_hash(reset($retrieved_statuses)), spl_object_hash(reset($statuses))); $this->assertEqual(spl_object_hash(end($retrieved_statuses)), spl_object_hash(end($statuses))); // Make sure we always get the last status. $this->assertEqual(spl_object_hash($this->payment->getPaymentStatus()), spl_object_hash(end($statuses))); }
/** * {@inheritdoc} */ public function doRefundPayment() { $this->getPayment()->setPaymentStatus($this->paymentStatusManager->createInstance($this->getRefundStatusId())); $this->getPayment()->save(); }