Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
NoHookServiceFactoryException example
private
function
initServices
(
Hook
$hook
, Script
$script
)
: ServiceStubs
{
$services
=
new
ServiceStubs
(
$hook
->
getName
(
)
)
;
$deprecatedServices
=
$hook
->
getDeprecatedServices
(
)
;
foreach
(
$hook
->
getServiceIds
(
)
as
$serviceId
)
{
if
(
!
$this
->container->
has
(
$serviceId
)
)
{
throw
new
ServiceNotFoundException
(
$serviceId
, 'Hook: ' .
$hook
->
getName
(
)
)
;
}
$service
=
$this
->container->
get
(
$serviceId
)
;
if
(
!
$service
instanceof HookServiceFactory
)
{
throw
new
NoHookServiceFactoryException
(
$serviceId
)
;
}
$services
->
add
(
$service
->
getName
(
)
,
$service
->
factory
(
$hook
,
$script
)
,
$deprecatedServices
[
$serviceId
]
?? null
)
;
}
return
$services
;
}
private
function
callAfter
(
ServiceStubs
$services
, Hook
$hook
, Script
$script
)
: void
{
foreach
(
$hook
->
getServiceIds
(
)
as
$serviceId
)
{
$this
->
expectException
(
ScriptExecutionFailedException::
class
)
;
$this
->
expectExceptionMessage
(
'The service "Hook: simple-function-case" has a dependency on a non-existent service "none-existing"'
)
;
$this
->executor->
execute
(
new
TestHook
(
'simple-function-case', Context::
createDefaultContext
(
)
,
[
]
,
[
'none-existing'
]
)
)
;
}
public
function
testHookAwareServiceValidation
(
)
: void
{
$this
->
loadAppsFromDir
(
__DIR__ . '/_fixtures'
)
;
$this
->
expectException
(
ScriptExecutionFailedException::
class
)
;
$innerException
=
new
NoHookServiceFactoryException
(
'product.repository'
)
;
$this
->
expectExceptionMessage
(
$innerException
->
getMessage
(
)
)
;
$this
->executor->
execute
(
new
TestHook
(
'simple-function-case', Context::
createDefaultContext
(
)
,
[
]
,
[
'product.repository'
]
)
)
;
}
public
function
testTranslation
(
)
: void
{
$translator
=
$this
->
getContainer
(
)
->
get
(
Translator::
class
)
;
$translator
->
reset
(
)
;
$translator
->
warmUp
(
''
)
;