Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
SendFailedMessageToFailureTransportListener example
/** @var SentToFailureTransportStamp $sentToFailureTransportStamp */
$sentToFailureTransportStamp
=
$envelope
->
last
(
SentToFailureTransportStamp::
class
)
;
$this
->
assertNotNull
(
$sentToFailureTransportStamp
)
;
$this
->
assertSame
(
$receiverName
,
$sentToFailureTransportStamp
->
getOriginalReceiverName
(
)
)
;
return
true;
}
)
)
->
willReturnArgument
(
0
)
;
$serviceLocator
=
$this
->
createMock
(
ServiceLocator::
class
)
;
$serviceLocator
->
expects
(
$this
->
once
(
)
)
->
method
(
'has'
)
->
willReturn
(
true
)
;
$serviceLocator
->
expects
(
$this
->
once
(
)
)
->
method
(
'get'
)
->
with
(
$receiverName
)
->
willReturn
(
$sender
)
;
$listener
=
new
SendFailedMessageToFailureTransportListener
(
$serviceLocator
)
;
$exception
=
new
\
Exception
(
'no!'
)
;
$envelope
=
new
Envelope
(
new
\
stdClass
(
)
)
;
$event
=
new
WorkerMessageFailedEvent
(
$envelope
, 'my_receiver',
$exception
)
;
$listener
->
onMessageFailed
(
$event
)
;
}
public
function
testDoNothingOnRetryWithServiceLocator
(
)
{
$sender
=
$this
->
createMock
(
SenderInterface::
class
)
;
$dispatcher
=
new
EventDispatcher
(
)
;
$bus
=
new
MessageBus
(
[
new
FailedMessageProcessingMiddleware
(
)
,
new
SendMessageMiddleware
(
$senderLocator
)
,
new
HandleMessageMiddleware
(
$handlerLocator
)
,
]
)
;
$dispatcher
->
addSubscriber
(
new
AddErrorDetailsStampListener
(
)
)
;
$dispatcher
->
addSubscriber
(
new
SendFailedMessageForRetryListener
(
$locator
,
$retryStrategyLocator
)
)
;
$dispatcher
->
addSubscriber
(
new
SendFailedMessageToFailureTransportListener
(
$sendersLocatorFailureTransport
)
)
;
$dispatcher
->
addSubscriber
(
new
StopWorkerOnMessageLimitListener
(
1
)
)
;
$runWorker
=
function
Dstring
$transportName
)
use
(
$transports
,
$bus
,
$dispatcher
)
: ?\Throwable
{
$throwable
= null;
$failedListener
=
function
DWorkerMessageFailedEvent
$event
)
use
(
&
$throwable
)
{
$throwable
=
$event
->
getThrowable
(
)
;
}
;
$dispatcher
->
addListener
(
WorkerMessageFailedEvent::
class
,
$failedListener
)
;
$worker
=
new
Worker
(
[
$transportName
=>
$transports
[
$transportName
]
]
,
$bus
,
$dispatcher
)
;