Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
VaultCaptureDataBuilderTest.php
Go to the documentation of this file.
1 <?php
7 
11 use Magento\Sales\Api\Data\OrderPaymentExtension;
14 use PHPUnit_Framework_MockObject_MockObject as MockObject;
15 
19 class VaultCaptureDataBuilderTest extends \PHPUnit\Framework\TestCase
20 {
24  private $builder;
25 
29  private $paymentDOMock;
30 
34  private $paymentMock;
35 
39  private $subjectReaderMock;
40 
44  protected function setUp()
45  {
46  $this->paymentDOMock = $this->createMock(PaymentDataObjectInterface::class);
47  $this->paymentMock = $this->getMockBuilder(Payment::class)
48  ->disableOriginalConstructor()
49  ->getMock();
50  $this->paymentDOMock->expects(static::once())
51  ->method('getPayment')
52  ->willReturn($this->paymentMock);
53 
54  $this->subjectReaderMock = $this->getMockBuilder(SubjectReader::class)
55  ->disableOriginalConstructor()
56  ->getMock();
57 
58  $this->builder = new VaultCaptureDataBuilder($this->subjectReaderMock);
59  }
60 
64  public function testBuild()
65  {
66  $amount = 30.00;
67  $token = '5tfm4c';
68  $buildSubject = [
69  'payment' => $this->paymentDOMock,
70  'amount' => $amount,
71  ];
72 
73  $expected = [
74  'amount' => $amount,
75  'paymentMethodToken' => $token,
76  ];
77 
78  $this->subjectReaderMock->expects(self::once())
79  ->method('readPayment')
80  ->with($buildSubject)
81  ->willReturn($this->paymentDOMock);
82  $this->subjectReaderMock->expects(self::once())
83  ->method('readAmount')
84  ->with($buildSubject)
85  ->willReturn($amount);
86 
87  $paymentExtensionMock = $this->getMockBuilder(OrderPaymentExtension::class)
88  ->setMethods(['getVaultPaymentToken'])
89  ->disableOriginalConstructor()
90  ->getMockForAbstractClass();
91 
92  $paymentTokenMock = $this->getMockBuilder(PaymentToken::class)
93  ->disableOriginalConstructor()
94  ->getMock();
95 
96  $paymentExtensionMock->expects(static::once())
97  ->method('getVaultPaymentToken')
98  ->willReturn($paymentTokenMock);
99  $this->paymentMock->expects(static::once())
100  ->method('getExtensionAttributes')
101  ->willReturn($paymentExtensionMock);
102 
103  $paymentTokenMock->expects(static::once())
104  ->method('getGatewayToken')
105  ->willReturn($token);
106 
107  $result = $this->builder->build($buildSubject);
108  self::assertEquals($expected, $result);
109  }
110 }
$amount
Definition: order.php:14