Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
HttpExceptionNormalizer example
$container
=
$this
->
prophesize
(
ContainerInterface::
class
)
;
$container
->
get
(
'request_stack'
)
->
willReturn
(
$request_stack
->
reveal
(
)
)
;
$config
=
$this
->
prophesize
(
ImmutableConfig::
class
)
;
$config
->
get
(
'error_level'
)
->
willReturn
(
ERROR_REPORTING_DISPLAY_VERBOSE
)
;
$config_factory
=
$this
->
prophesize
(
ConfigFactory::
class
)
;
$config_factory
->
get
(
'system.logging'
)
->
willReturn
(
$config
->
reveal
(
)
)
;
$container
->
get
(
'config.factory'
)
->
willReturn
(
$config_factory
->
reveal
(
)
)
;
\Drupal::
setContainer
(
$container
->
reveal
(
)
)
;
$exception
=
new
AccessDeniedHttpException
(
'lorem', NULL, 13
)
;
$current_user
=
$this
->
prophesize
(
AccountInterface::
class
)
;
$current_user
->
hasPermission
(
'access site reports'
)
->
willReturn
(
TRUE
)
;
$normalizer
=
new
HttpExceptionNormalizer
(
$current_user
->
reveal
(
)
)
;
$normalized
=
$normalizer
->
normalize
(
$exception
, 'api_json'
)
;
$normalized
=
$normalized
->
getNormalization
(
)
;
$error
=
$normalized
[
0
]
;
$this
->
assertNotEmpty
(
$error
[
'meta'
]
)
;
$this
->
assertNotEmpty
(
$error
[
'source'
]
)
;
$this
->
assertSame
(
'13',
$error
[
'code'
]
)
;
$this
->
assertSame
(
'403',
$error
[
'status'
]
)
;
$this
->
assertEquals
(
'Forbidden',
$error
[
'title'
]
)
;
$this
->
assertEquals
(
'lorem',
$error
[
'detail'
]
)
;
$this
->
assertArrayHasKey
(
'trace',
$error
[
'meta'
]
)
;
$this
->
assertNotEmpty
(
$error
[
'meta'
]
[
'trace'
]
)
;