Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getTokenTerms example
/** * @dataProvider caseWithFetchingTokenTerms * * @param list<list<string>> $expected */
public
function
testMatchingTokenTerms
(
string
$term
, array
$expected
)
: void
{
$context
= Context::
createDefaultContext
(
)
;
$tokenTerms
=
$this
->interpreter->
interpret
(
$term
,
$context
)
->
getTokenTerms
(
)
;
static
::
assertEquals
(
\
count
(
$expected
)
, \
count
(
$tokenTerms
)
)
;
foreach
(
$tokenTerms
as
$index
=>
$tokenTerm
)
{
sort
(
$expected
[
$index
]
)
;
sort
(
$tokenTerm
)
;
static
::
assertEquals
(
$expected
[
$index
]
,
$tokenTerm
)
;
}
}
/** * @dataProvider caseWithMatchingBooleanCause */
if
(
$pattern
->
getBooleanClause
(
)
!== SearchPattern::BOOLEAN_CLAUSE_AND
)
{
$criteria
->
addFilter
(
new
AndFilter
(
[
new
EqualsAnyFilter
(
'product.searchKeywords.keyword',
array_values
(
$pattern
->
getAllTerms
(
)
)
)
,
new
EqualsFilter
(
'product.searchKeywords.languageId',
$context
->
getContext
(
)
->
getLanguageId
(
)
)
,
]
)
)
;
return
;
}
foreach
(
$pattern
->
getTokenTerms
(
)
as
$terms
)
{
$criteria
->
addFilter
(
new
AndFilter
(
[
new
EqualsFilter
(
'product.searchKeywords.languageId',
$context
->
getContext
(
)
->
getLanguageId
(
)
)
,
new
EqualsAnyFilter
(
'product.searchKeywords.keyword',
$terms
)
,
]
)
)
;
}
}
}