12 use Magento\Sales\Api\Data\OrderPaymentExtension;
13 use Magento\Sales\Api\Data\OrderPaymentExtensionFactory;
19 use PHPUnit_Framework_MockObject_MockObject as MockObject;
66 protected function setUp()
69 $encryptorRandomGenerator = $this->createMock(Random::class);
71 $deploymentConfigMock = $this->createMock(DeploymentConfig::class);
72 $this->encryptorModel =
new Encryptor($encryptorRandomGenerator, $deploymentConfigMock);
74 $this->paymentExtension = $this->getMockBuilder(OrderPaymentExtension::class)
75 ->setMethods([
'setVaultPaymentToken',
'getVaultPaymentToken',
'__wakeup'])
76 ->disableOriginalConstructor()
79 $this->paymentTokenManagementMock = $this->getMockBuilder(PaymentTokenManagement::class)
80 ->setMethods([
'saveTokenWithPaymentLink'])
81 ->disableOriginalConstructor()
84 $this->paymentTokenMock = $this->getMockBuilder(PaymentToken::class)
86 ->disableOriginalConstructor()
89 $this->paymentExtension->setVaultPaymentToken($this->paymentTokenMock);
92 $this->salesOrderMock = $this->createMock(Order::class);
95 $this->salesOrderPaymentMock = $this->getMockBuilder(Payment::class)
97 ->disableOriginalConstructor()
99 $this->salesOrderPaymentMock->setOrder($this->salesOrderMock);
100 $this->salesOrderPaymentMock->setExtensionAttributes($this->paymentExtension);
103 $this->eventObserverArgMock = $this->getMockBuilder(Observer::class)
104 ->setMethods([
'getDataByKey'])
105 ->disableOriginalConstructor()
107 $this->eventObserverArgMock->expects($this->any())
108 ->method(
'getDataByKey')
110 ->willReturn($this->salesOrderPaymentMock);
114 $this->paymentTokenManagementMock,
115 $this->encryptorModel
129 $this->paymentTokenMock->setGatewayToken(
$token);
130 $this->paymentTokenMock->setCustomerId(
$customerId);
131 $this->paymentTokenMock->setCreatedAt($createdAt);
132 $this->paymentTokenMock->setPaymentMethodCode(
$method);
133 $this->paymentTokenMock->setIsActive($isActive);
135 $this->paymentExtension->expects($this->exactly(2))
136 ->method(
'getVaultPaymentToken')
137 ->willReturn($this->paymentTokenMock);
140 $this->paymentTokenManagementMock->expects($this->once())
141 ->method(
'saveTokenWithPaymentLink')
143 $this->paymentExtension->expects($this->once())
144 ->method(
'setVaultPaymentToken')
145 ->with($this->paymentTokenMock);
147 $this->paymentTokenManagementMock->expects($this->never())
148 ->method(
'saveTokenWithPaymentLink');
149 $this->paymentExtension->expects($this->never())
150 ->method(
'setVaultPaymentToken')
151 ->with($this->paymentTokenMock);
154 static::assertSame($this->observer, $this->observer->execute($this->eventObserverArgMock));
156 $paymentToken = $this->salesOrderPaymentMock->getExtensionAttributes()->getVaultPaymentToken();
159 static::assertEquals($isActive,
$paymentToken->getIsActive());
160 static::assertEquals($createdAt,
$paymentToken->getCreatedAt());
testPositiveCase($customerId, $createdAt, $token, $isActive, $method)
positiveCaseDataProvider()
$paymentTokenManagementMock
const PAYMENT_OBJECT_DATA_KEY