123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Vault\Test\Unit\Observer;
- use Magento\Customer\Api\Data\CustomerInterface;
- use Magento\Framework\DataObject;
- use Magento\Framework\Event;
- use Magento\Framework\Event\Observer;
- use Magento\Payment\Model\InfoInterface;
- use Magento\Payment\Observer\AbstractDataAssignObserver;
- use Magento\Quote\Api\Data\CartInterface;
- use Magento\Quote\Api\Data\PaymentInterface;
- use Magento\Quote\Model\Quote\Payment;
- use Magento\Vault\Api\Data\PaymentTokenInterface;
- use Magento\Vault\Api\PaymentTokenManagementInterface;
- use Magento\Vault\Model\Method\Vault;
- use Magento\Vault\Observer\PaymentTokenAssigner;
- /**
- * Class PaymentTokenAssignerTest
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
- class PaymentTokenAssignerTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var PaymentTokenManagementInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- private $paymentTokenManagement;
- /**
- * @var PaymentTokenAssigner
- */
- private $observer;
- public function setUp()
- {
- $this->paymentTokenManagement = $this->createMock(PaymentTokenManagementInterface::class);
- $this->observer = new PaymentTokenAssigner($this->paymentTokenManagement);
- }
- public function testExecuteNoPublicHash()
- {
- $dataObject = new DataObject();
- $observer = $this->getPreparedObserverWithMap(
- [
- [AbstractDataAssignObserver::DATA_CODE, $dataObject]
- ]
- );
- $this->paymentTokenManagement->expects(static::never())
- ->method('getByPublicHash');
- $this->observer->execute($observer);
- }
- public function testExecuteNotOrderPaymentModel()
- {
- $dataObject = new DataObject(
- [
- PaymentInterface::KEY_ADDITIONAL_DATA => [
- PaymentTokenInterface::PUBLIC_HASH => 'public_hash_value'
- ]
- ]
- );
- $paymentModel = $this->createMock(InfoInterface::class);
- $observer = $this->getPreparedObserverWithMap(
- [
- [AbstractDataAssignObserver::DATA_CODE, $dataObject],
- [AbstractDataAssignObserver::MODEL_CODE, $paymentModel]
- ]
- );
- $this->paymentTokenManagement->expects(static::never())
- ->method('getByPublicHash');
- $this->observer->execute($observer);
- }
- public function testExecuteNoPaymentToken()
- {
- $customerId = 1;
- $publicHash = 'public_hash_value';
- $dataObject = new DataObject(
- [
- PaymentInterface::KEY_ADDITIONAL_DATA => [
- PaymentTokenInterface::PUBLIC_HASH => $publicHash
- ]
- ]
- );
- $paymentModel = $this->getMockBuilder(Payment::class)
- ->disableOriginalConstructor()
- ->getMock();
- $quote = $this->createMock(CartInterface::class);
- $customer = $this->createMock(CustomerInterface::class);
- $paymentModel->expects(static::once())
- ->method('getQuote')
- ->willReturn($quote);
- $quote->expects(static::once())
- ->method('getCustomer')
- ->willReturn($customer);
- $customer->expects(static::once())
- ->method('getId')
- ->willReturn($customerId);
- $this->paymentTokenManagement->expects(static::once())
- ->method('getByPublicHash')
- ->with($publicHash, $customerId)
- ->willReturn(null);
- $observer = $this->getPreparedObserverWithMap(
- [
- [AbstractDataAssignObserver::DATA_CODE, $dataObject],
- [AbstractDataAssignObserver::MODEL_CODE, $paymentModel]
- ]
- );
- $paymentModel->expects(static::never())
- ->method('setAdditionalInformation');
- $this->observer->execute($observer);
- }
- public function testExecuteSaveMetadata()
- {
- $customerId = 1;
- $publicHash = 'public_hash_value';
- $dataObject = new DataObject(
- [
- PaymentInterface::KEY_ADDITIONAL_DATA => [
- PaymentTokenInterface::PUBLIC_HASH => $publicHash
- ]
- ]
- );
- $paymentModel = $this->getMockBuilder(Payment::class)
- ->disableOriginalConstructor()
- ->getMock();
- $quote = $this->createMock(CartInterface::class);
- $customer = $this->createMock(CustomerInterface::class);
- $paymentToken = $this->createMock(PaymentTokenInterface::class);
- $paymentModel->expects(static::once())
- ->method('getQuote')
- ->willReturn($quote);
- $quote->expects(static::once())
- ->method('getCustomer')
- ->willReturn($customer);
- $customer->expects(static::once())
- ->method('getId')
- ->willReturn($customerId);
- $this->paymentTokenManagement->expects(static::once())
- ->method('getByPublicHash')
- ->with($publicHash, $customerId)
- ->willReturn($paymentToken);
- $paymentModel->expects(static::once())
- ->method('setAdditionalInformation')
- ->with(
- [
- PaymentTokenInterface::CUSTOMER_ID => $customerId,
- PaymentTokenInterface::PUBLIC_HASH => $publicHash
- ]
- );
- $observer = $this->getPreparedObserverWithMap(
- [
- [AbstractDataAssignObserver::DATA_CODE, $dataObject],
- [AbstractDataAssignObserver::MODEL_CODE, $paymentModel]
- ]
- );
- $this->observer->execute($observer);
- }
- /**
- * @param array $returnMap
- * @return \PHPUnit_Framework_MockObject_MockObject|Observer
- */
- private function getPreparedObserverWithMap(array $returnMap)
- {
- $observer = $this->getMockBuilder(Observer::class)
- ->disableOriginalConstructor()
- ->getMock();
- $event = $this->getMockBuilder(Event::class)
- ->disableOriginalConstructor()
- ->getMock();
- $observer->expects(static::atLeastOnce())
- ->method('getEvent')
- ->willReturn($event);
- $event->expects(static::atLeastOnce())
- ->method('getDataByKey')
- ->willReturnMap(
- $returnMap
- );
- return $observer;
- }
- }
|