Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
ResolveTaggedIteratorArgumentPass example
class
ResolveTaggedIteratorArgumentPassTest
extends
TestCase
{
public
function
testProcess
(
)
{
$container
=
new
ContainerBuilder
(
)
;
$container
->
register
(
'a', 'stdClass'
)
->
addTag
(
'foo'
)
;
$container
->
register
(
'b', 'stdClass'
)
->
addTag
(
'foo',
[
'priority' => 20
]
)
;
$container
->
register
(
'c', 'stdClass'
)
->
addTag
(
'foo',
[
'priority' => 10
]
)
;
$container
->
register
(
'd', 'stdClass'
)
->
setProperty
(
'foos',
new
TaggedIteratorArgument
(
'foo'
)
)
;
(
new
ResolveTaggedIteratorArgumentPass
(
)
)
->
process
(
$container
)
;
$properties
=
$container
->
getDefinition
(
'd'
)
->
getProperties
(
)
;
$expected
=
new
TaggedIteratorArgument
(
'foo'
)
;
$expected
->
setValues
(
[
new
Reference
(
'b'
)
,
new
Reference
(
'c'
)
,
new
Reference
(
'a'
)
]
)
;
$this
->
assertEquals
(
$expected
,
$properties
[
'foos'
]
)
;
}
public
function
testProcessWithIndexes
(
)
{
$container
=
new
ContainerBuilder
(
)
;
$container
->
register
(
'service_a', 'stdClass'
)
->
addTag
(
'foo',
[
'key' => '1'
]
)
;
new
ResolveParameterPlaceHoldersPass
(
false, false
)
,
new
ResolveFactoryClassPass
(
)
,
new
ResolveNamedArgumentsPass
(
)
,
new
AutowireRequiredMethodsPass
(
)
,
new
AutowireRequiredPropertiesPass
(
)
,
new
ResolveBindingsPass
(
)
,
new
ServiceLocatorTagPass
(
)
,
new
DecoratorServicePass
(
)
,
new
CheckDefinitionValidityPass
(
)
,
new
AutowirePass
(
false
)
,
new
ServiceLocatorTagPass
(
)
,
new
ResolveTaggedIteratorArgumentPass
(
)
,
new
ResolveServiceSubscribersPass
(
)
,
new
ResolveReferencesToAliasesPass
(
)
,
new
ResolveInvalidReferencesPass
(
)
,
new
AnalyzeServiceReferencesPass
(
true
)
,
new
CheckCircularReferencesPass
(
)
,
new
CheckReferenceValidityPass
(
)
,
new
CheckArgumentsValidityPass
(
false
)
,
]
]
;
$this
->removingPasses =
[
[
new
RemovePrivateAliasesPass
(
)
,
$this
->
assertTrue
(
$container
->
hasDefinition
(
'messenger.transport.amqp.factory'
)
)
;
$this
->
assertTrue
(
$container
->
hasDefinition
(
'messenger.transport.redis.factory'
)
)
;
$this
->
assertTrue
(
$container
->
hasDefinition
(
'messenger.transport_factory'
)
)
;
$this
->
assertSame
(
TransportFactory::
class
,
$container
->
getDefinition
(
'messenger.transport_factory'
)
->
getClass
(
)
)
;
$this
->
assertTrue
(
$container
->
hasDefinition
(
'messenger.listener.reset_services'
)
)
;
$this
->
assertSame
(
'messenger.listener.reset_services',
(string)
$container
->
getDefinition
(
'console.command.messenger_consume_messages'
)
->
getArgument
(
5
)
)
;
}
public
function
testMessenger
(
)
{
$container
=
$this
->
createContainerFromFile
(
'messenger',
[
]
, true, false
)
;
$container
->
addCompilerPass
(
new
ResolveTaggedIteratorArgumentPass
(
)
)
;
$container
->
compile
(
)
;
$expectedFactories
=
[
new
Reference
(
'scheduler.messenger_transport_factory'
)
,
]
;
if
(
class_exists
(
AmqpTransportFactory::
class
)
)
{
$expectedFactories
[
]
= 'messenger.transport.amqp.factory';
}
if
(
class_exists
(
RedisTransportFactory::
class
)
)
{
new
ResolveParameterPlaceHoldersPass
(
false, false
)
,
new
ResolveFactoryClassPass
(
)
,
new
ResolveNamedArgumentsPass
(
)
,
new
AutowireRequiredMethodsPass
(
)
,
new
AutowireRequiredPropertiesPass
(
)
,
new
ResolveBindingsPass
(
)
,
new
ServiceLocatorTagPass
(
)
,
new
DecoratorServicePass
(
)
,
new
CheckDefinitionValidityPass
(
)
,
new
AutowirePass
(
false
)
,
new
ServiceLocatorTagPass
(
)
,
new
ResolveTaggedIteratorArgumentPass
(
)
,
new
ResolveServiceSubscribersPass
(
)
,
new
ResolveReferencesToAliasesPass
(
)
,
new
ResolveInvalidReferencesPass
(
)
,
new
AnalyzeServiceReferencesPass
(
true
)
,
new
CheckCircularReferencesPass
(
)
,
new
CheckReferenceValidityPass
(
)
,
new
CheckArgumentsValidityPass
(
false
)
,
]
]
;
$this
->removingPasses =
[
[
new
RemovePrivateAliasesPass
(
)
,