8 use Braintree\Transaction;
38 private $subjectReaderMock;
42 $this->initConfigMock();
43 $this->subjectReaderMock = $this->getMockBuilder(SubjectReader::class)
44 ->disableOriginalConstructor()
47 $this->cardHandler =
new CardDetailsHandler($this->configMock, $this->subjectReaderMock);
55 $paymentDataMock = $this->getPaymentDataObjectMock();
58 $subject = [
'payment' => $paymentDataMock];
61 $this->subjectReaderMock->expects(self::once())
62 ->method(
'readPayment')
64 ->willReturn($paymentDataMock);
65 $this->subjectReaderMock->expects(self::once())
66 ->method(
'readTransaction')
70 $this->paymentMock->expects(static::once())
71 ->method(
'setCcLast4');
72 $this->paymentMock->expects(static::once())
73 ->method(
'setCcExpMonth');
74 $this->paymentMock->expects(static::once())
75 ->method(
'setCcExpYear');
76 $this->paymentMock->expects(static::once())
77 ->method(
'setCcType');
78 $this->paymentMock->expects(static::exactly(2))
79 ->method(
'setAdditionalInformation');
81 $this->cardHandler->handle($subject,
$response);
87 private function initConfigMock()
89 $this->configMock = $this->getMockBuilder(Config::class)
90 ->disableOriginalConstructor()
91 ->setMethods([
'getCctypesMapper'])
94 $this->configMock->expects(static::once())
95 ->method(
'getCctypesMapper')
97 'american-express' =>
'AE',
100 'mastercard' =>
'MC',
101 'master-card' =>
'MC',
110 private function getPaymentDataObjectMock()
112 $this->paymentMock = $this->getMockBuilder(Payment::class)
113 ->disableOriginalConstructor()
119 'setAdditionalInformation',
123 $mock = $this->getMockBuilder(PaymentDataObject::class)
124 ->setMethods([
'getPayment'])
125 ->disableOriginalConstructor()
128 $mock->expects(static::once())
129 ->method(
'getPayment')
130 ->willReturn($this->paymentMock);
139 private function getBraintreeTransaction()
144 'cardType' =>
'American Express',
145 'expirationMonth' => 12,
146 'expirationYear' => 21,