Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getSkipInvalid example
class
ProductPageSeoUrlRouteTest
extends
TestCase
{
public
function
testGetConfig
(
)
: void
{
$productDefinition
=
$this
->
createMock
(
ProductDefinition::
class
)
;
$route
=
new
ProductPageSeoUrlRoute
(
$productDefinition
)
;
$config
=
$route
->
getConfig
(
)
;
static
::
assertSame
(
$productDefinition
,
$config
->
getDefinition
(
)
)
;
static
::
assertSame
(
ProductPageSeoUrlRoute::ROUTE_NAME,
$config
->
getRouteName
(
)
)
;
static
::
assertSame
(
ProductPageSeoUrlRoute::DEFAULT_TEMPLATE,
$config
->
getTemplate
(
)
)
;
static
::
assertTrue
(
$config
->
getSkipInvalid
(
)
)
;
}
public
function
testCriteria
(
)
: void
{
$route
=
new
ProductPageSeoUrlRoute
(
$this
->
createMock
(
ProductDefinition::
class
)
)
;
$criteria
=
new
Criteria
(
)
;
$salesChannel
=
new
SalesChannelEntity
(
)
;
$salesChannel
->
setId
(
'test'
)
;
$route
->
prepareCriteria
(
$criteria
,
$salesChannel
)
;
static
::
assertTrue
(
$criteria
->
hasEqualsFilter
(
'active'
)
)
;
class
ProductPageSeoUrlRouteTest
extends
TestCase
{
public
function
testGetConfig
(
)
: void
{
$productDefinition
=
$this
->
createMock
(
ProductDefinition::
class
)
;
$route
=
new
ProductPageSeoUrlRoute
(
$productDefinition
)
;
$config
=
$route
->
getConfig
(
)
;
static
::
assertSame
(
$productDefinition
,
$config
->
getDefinition
(
)
)
;
static
::
assertSame
(
ProductPageSeoUrlRoute::ROUTE_NAME,
$config
->
getRouteName
(
)
)
;
static
::
assertSame
(
ProductPageSeoUrlRoute::DEFAULT_TEMPLATE,
$config
->
getTemplate
(
)
)
;
static
::
assertTrue
(
$config
->
getSkipInvalid
(
)
)
;
}
public
function
testCriteria
(
)
: void
{
$route
=
new
ProductPageSeoUrlRoute
(
$this
->
createMock
(
ProductDefinition::
class
)
)
;
$criteria
=
new
Criteria
(
)
;
$salesChannel
=
new
SalesChannelEntity
(
)
;
$salesChannel
->
setId
(
'test'
)
;
$route
->
prepareCriteria
(
$criteria
,
$salesChannel
)
;
static
::
assertTrue
(
$criteria
->
hasEqualsFilter
(
'active'
)
)
;
$copy
->
setSalesChannelId
(
$salesChannel
->
getId
(
)
)
;
yield
$copy
;
}
}
private
function
getSeoPathInfo
(
SeoUrlMapping
$mapping
, SeoUrlRouteConfig
$config
)
: ?string
{
try
{
return
trim
(
$this
->twig->
render
(
'template',
$mapping
->
getSeoPathInfoContext
(
)
)
)
;
}
catch
(
\Throwable
$error
)
{
if
(
!
$config
->
getSkipInvalid
(
)
)
{
throw
SeoException::
invalidTemplate
(
'Error: ' .
$error
->
getMessage
(
)
)
;
}
return
null;
}
}
private
function
setTwigTemplate
(
SeoUrlRouteConfig
$config
, string
$template
)
: void
{
$template
= '{% autoescape \'' . self::ESCAPE_SLUGIFY . "' %}
$template
{% endautoescape %}";
$this
->twig->
setLoader
(
new
ArrayLoader
(
[
'template' =>
$template
]
)
)
;