Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
setDeliveryTime example
DeliveryProcessor::
buildKey
(
$this
->salesChannelContext->
getShippingMethod
(
)
->
getId
(
)
)
,
$this
->salesChannelContext->
getShippingMethod
(
)
)
;
$originalCart
=
new
Cart
(
'original'
)
;
$deliveryTime
=
$this
->
generateDeliveryTimeDummy
(
)
;
$shippingMethod
=
new
ShippingMethodEntity
(
)
;
$shippingMethod
->
setId
(
'1'
)
;
$shippingMethod
->
setName
(
'Express'
)
;
$shippingMethod
->
addTranslated
(
'name', 'Express'
)
;
$shippingMethod
->
setDeliveryTime
(
$deliveryTime
)
;
$shippingMethod
->
setAvailabilityRuleId
(
Uuid::
randomHex
(
)
)
;
$shippingMethod
->
setTaxType
(
ShippingMethodEntity::TAX_TYPE_AUTO
)
;
$deliveryDate
=
new
DeliveryDate
(
new
\
DateTime
(
)
,
new
\
DateTime
(
)
)
;
$delivery
=
new
Delivery
(
new
DeliveryPositionCollection
(
)
,
$deliveryDate
,
$shippingMethod
,
new
ShippingLocation
(
new
CountryEntity
(
)
, null, null
)
,
new
CalculatedPrice
(
10, 10,
new
CalculatedTaxCollection
(
)
,
new
TaxRuleCollection
(
)
)
)
;
)
;
}
if
(
!
$shippingMethod
)
{
$deliveryTime
=
new
DeliveryTimeEntity
(
)
;
$deliveryTime
->
setMin
(
1
)
;
$deliveryTime
->
setMax
(
2
)
;
$deliveryTime
->
setUnit
(
DeliveryTimeEntity::DELIVERY_TIME_DAY
)
;
$shippingMethod
=
new
ShippingMethodEntity
(
)
;
$shippingMethod
->
setDeliveryTime
(
$deliveryTime
)
;
$shippingMethod
->
setId
(
'8beeb66e9dda46b18891a059257a590e'
)
;
}
if
(
!
$customer
)
{
$customer
=
(
new
CustomerEntity
(
)
)
->
assign
(
[
'id' => Uuid::
randomHex
(
)
]
)
;
$customer
->
setId
(
Uuid::
randomHex
(
)
)
;
$customer
->
setGroup
(
$currentCustomerGroup
)
;
}
return
new
SalesChannelContext
(
$baseContext
,
public
function
testValidateWithoutRules
(
)
: void
{
$deliveryTime
=
$this
->
generateDeliveryTimeDummy
(
)
;
$cart
=
new
Cart
(
'test'
)
;
$context
=
$this
->
createMock
(
SalesChannelContext::
class
)
;
$shippingMethod
=
new
ShippingMethodEntity
(
)
;
$shippingMethod
->
setId
(
'1'
)
;
$shippingMethod
->
setAvailabilityRuleId
(
'1'
)
;
$shippingMethod
->
setDeliveryTime
(
$deliveryTime
)
;
$shippingMethod
->
setActive
(
true
)
;
$deliveryDate
=
new
DeliveryDate
(
new
\
DateTime
(
)
,
new
\
DateTime
(
)
)
;
$delivery
=
new
Delivery
(
new
DeliveryPositionCollection
(
)
,
$deliveryDate
,
$shippingMethod
,
new
ShippingLocation
(
new
CountryEntity
(
)
, null, null
)
,
new
CalculatedPrice
(
5, 5,
new
CalculatedTaxCollection
(
)
,
new
TaxRuleCollection
(
)
)
)
;
$cart
->
setDeliveries
(
new
DeliveryCollection
(
[
$delivery
]
)
)
;
$context
->
expects
(
static
::
once
(
)
)
->
method
(
'getRuleIds'
)
->
willReturn
(
[
'1'
]
)
;
/** * @dataProvider provideLineItemDataForSingleDelivery */
public
function
testDeliveryTimesForSingleDelivery
(
LineItemCollection
$lineItems
, DeliveryDate
$expectedDeliveryDate
)
: void
{
$cart
=
new
Cart
(
'cart-token'
)
;
$cart
->
setLineItems
(
$lineItems
)
;
$shippingMethod
=
new
ShippingMethodEntity
(
)
;
$shippingMethod
->
setDeliveryTime
(
self::
createDeliveryTimeEntity
(
DeliveryTimeEntity::DELIVERY_TIME_DAY, 2, 3
)
)
;
$deliveryLocation
=
new
ShippingLocation
(
new
CountryEntity
(
)
, null, null
)
;
$salesChannelContext
=
$this
->
createMock
(
SalesChannelContext::
class
)
;
$salesChannelContext
->
expects
(
static
::
once
(
)
)
->
method
(
'getShippingLocation'
)
->
willReturn
(
$deliveryLocation
)
;
$deliveryCollection
=
(
new
DeliveryBuilder
(
)
)
->
buildByUsingShippingMethod
(
$cart
,
$shippingMethod
,
$salesChannelContext
)
;
static
::
assertEquals
(
1,
$deliveryCollection
->
count
(
)
)
;
$newCosts
=
$delivery
->
getShippingCosts
(
)
;
static
::
assertEquals
(
5,
$newCosts
->
getUnitPrice
(
)
)
;
static
::
assertEquals
(
5,
$newCosts
->
getTotalPrice
(
)
)
;
static
::
assertCount
(
0,
$newCosts
->
getTaxRules
(
)
)
;
static
::
assertCount
(
0,
$newCosts
->
getCalculatedTaxes
(
)
)
;
}
public
function
testCalculateWithoutShippingMethodPrices
(
)
: void
{
$shippingMethod
=
new
ShippingMethodEntity
(
)
;
$shippingMethod
->
setId
(
Uuid::
randomHex
(
)
)
;
$shippingMethod
->
setDeliveryTime
(
$this
->deliveryTimeEntity
)
;
$shippingMethod
->
setPrices
(
new
ShippingMethodPriceCollection
(
)
)
;
$shippingMethod
->
setName
(
Uuid::
randomHex
(
)
)
;
$context
=
$this
->
createMock
(
SalesChannelContext::
class
)
;
$delivery
=
$this
->
getMockBuilder
(
Delivery::
class
)
->
disableOriginalConstructor
(
)
->
getMock
(
)
;
$costs
=
new
CalculatedPrice
(
0, 0,
new
CalculatedTaxCollection
(
)
,
new
TaxRuleCollection
(
)
)
;
$delivery
->
expects
(
static
::
atLeastOnce
(
)
)
->
method
(
'getShippingCosts'
)
->
willReturn
(
$costs
)
;
$delivery
->
expects
(
static
::
never
(
)
)
->
method
(
'setShippingCosts'
)
;