Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
ProductCrossSellingRouteResponse example
$salesChannel
,
new
CurrencyEntity
(
)
,
new
CustomerGroupEntity
(
)
,
new
TaxCollection
(
)
,
new
PaymentMethodEntity
(
)
,
new
ShippingMethodEntity
(
)
,
new
ShippingLocation
(
new
CountryEntity
(
)
, null, null
)
,
new
CustomerEntity
(
)
,
new
CashRoundingConfig
(
1, 1.1, true
)
,
new
CashRoundingConfig
(
1, 1.1, true
)
)
;
$this
->response =
new
ProductCrossSellingRouteResponse
(
new
CrossSellingElementCollection
(
)
)
;
$this
->cachedRoute =
new
CachedProductCrossSellingRoute
(
$this
->decorated,
$this
->cache,
$this
->
createMock
(
EntityCacheKeyGenerator::
class
)
,
$this
->
createMock
(
AbstractCacheTracer::
class
)
,
$this
->eventDispatcher,
[
]
)
;
}
class
CrossSellingTypeDataResolverTest
extends
TestCase
{
use
IntegrationTestBehaviour;
private
CrossSellingCmsElementResolver
$crossSellingResolver
;
protected
function
setUp
(
)
: void
{
$mock
=
$this
->
createMock
(
AbstractProductCrossSellingRoute::
class
)
;
$mock
->
method
(
'load'
)
->
willReturn
(
new
ProductCrossSellingRouteResponse
(
new
CrossSellingElementCollection
(
)
)
)
;
$this
->crossSellingResolver =
new
CrossSellingCmsElementResolver
(
$mock
)
;
}
public
function
testType
(
)
: void
{
static
::
assertSame
(
'cross-selling',
$this
->crossSellingResolver->
getType
(
)
)
;
}
if
(
$this
->
useProductStream
(
$crossSelling
)
)
{
$element
=
$this
->
loadByStream
(
$crossSelling
,
$context
,
$clone
)
;
}
else
{
$element
=
$this
->
loadByIds
(
$crossSelling
,
$context
,
$clone
)
;
}
$elements
->
add
(
$element
)
;
}
$this
->eventDispatcher->
dispatch
(
new
ProductCrossSellingsLoadedEvent
(
$elements
,
$context
)
)
;
return
new
ProductCrossSellingRouteResponse
(
$elements
)
;
}
private
function
loadCrossSellings
(
string
$productId
, SalesChannelContext
$context
)
: ProductCrossSellingCollection
{
$criteria
=
new
Criteria
(
)
;
$criteria
->
setTitle
(
'product-cross-selling-route'
)
;
$criteria
->
addAssociation
(
'assignedProducts'
)
->
addFilter
(
new
EqualsFilter
(
'product.id',
$productId
)
)
->
addFilter
(
new
EqualsFilter
(
'active', 1
)
)
->
addSorting
(
new
FieldSorting
(
'position', FieldSorting::ASCENDING
)
)
;