paymentDOMock = $this->createMock(PaymentDataObjectInterface::class); $this->paymentMock = $this->createMock(Payment::class); $this->paymentDOMock->method('getPayment') ->willReturn($this->paymentMock); $this->passthroughData = new PassthroughDataObject(); $this->builder = new CaptureDataBuilder( new SubjectReader(), $this->passthroughData ); } public function testBuildWillCaptureWhenAuthorizeTransactionExists() { $transactionMock = $this->createMock(Payment\Transaction::class); $transactionMock->method('getAdditionalInformation') ->with('real_transaction_id') ->willReturn('prevtrans'); $this->paymentMock->method('getAuthorizationTransaction') ->willReturn($transactionMock); $expected = [ 'transactionRequest' => [ 'transactionType' => 'priorAuthCaptureTransaction', 'refTransId' => 'prevtrans' ] ]; $buildSubject = [ 'payment' => $this->paymentDOMock, ]; $this->assertEquals($expected, $this->builder->build($buildSubject)); $this->assertEquals('priorAuthCaptureTransaction', $this->passthroughData->getData('transactionType')); } }