handler = new CancelDetailsHandler(new SubjectReader()); } /** * Checks a case when cancel handler closes the current and parent transactions. * * @return void */ public function testHandle(): void { /** @var OrderAdapterInterface|MockObject $order */ $order = $this->getMockForAbstractClass(OrderAdapterInterface::class); /** @var Payment|MockObject $payment */ $payment = $this->getMockBuilder(Payment::class) ->disableOriginalConstructor() ->setMethods(['setOrder']) ->getMock(); $paymentDO = new PaymentDataObject($order, $payment); $response = [ 'payment' => $paymentDO, ]; $this->handler->handle($response, []); self::assertTrue($payment->getIsTransactionClosed(), 'The current transaction should be closed.'); self::assertTrue($payment->getShouldCloseParentTransaction(), 'The parent transaction should be closed.'); } }