paymentDOMock = $this->createMock(PaymentDataObjectInterface::class); $this->paymentMock = $this->createMock(Payment::class); $this->orderMock = $this->createMock(Order::class); $this->paymentDOMock->method('getPayment') ->willReturn($this->paymentMock); $this->builder = new PaymentDataBuilder(new SubjectReader()); } public function testBuild() { $this->paymentMock->method('getAdditionalInformation') ->willReturnMap([ ['opaqueDataDescriptor', 'foo'], ['opaqueDataValue', 'bar'] ]); $expected = [ 'transactionRequest' => [ 'payment' => [ 'opaqueData' => [ 'dataDescriptor' => 'foo', 'dataValue' => 'bar' ] ] ] ]; $buildSubject = [ 'payment' => $this->paymentDOMock, 'amount' => 123.45 ]; $this->assertEquals($expected, $this->builder->build($buildSubject)); } }