Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
CountryStateEntity example
)
;
static
::
assertFalse
(
$rule
->
match
(
new
CartRuleScope
(
$cart
,
$context
)
)
)
;
}
private
function
createAddress
(
string
$street
)
: CustomerAddressEntity
{
$address
=
new
CustomerAddressEntity
(
)
;
$state
=
new
CountryStateEntity
(
)
;
$country
=
new
CountryEntity
(
)
;
$state
->
setCountryId
(
'SWAG-AREA-COUNTRY-ID-1'
)
;
$address
->
setStreet
(
$street
)
;
$address
->
setCountry
(
$country
)
;
$address
->
setCountryState
(
$state
)
;
return
$address
;
}
}
private
function
getCountry
(
)
: CountryEntity
{
$country
=
new
CountryEntity
(
)
;
$country
->
setId
(
'country-id'
)
;
return
$country
;
}
private
function
getState
(
)
: CountryStateEntity
{
$state
=
new
CountryStateEntity
(
)
;
$state
->
setId
(
'state-id'
)
;
return
$state
;
}
}
$customer
->
setCustomerNumber
(
'order-customer-number'
)
;
return
$customer
;
}
private
function
getOrderAddress
(
)
: OrderAddressEntity
{
$country
=
new
CountryEntity
(
)
;
$country
->
setId
(
'country-id'
)
;
$country
->
setName
(
'country-name'
)
;
$countryState
=
new
CountryStateEntity
(
)
;
$countryState
->
setId
(
'country-state-id'
)
;
$countryState
->
setName
(
'country-state-name'
)
;
$address
=
new
OrderAddressEntity
(
)
;
$address
->
setId
(
'order-address-id'
)
;
$address
->
setSalutationId
(
'order-address-salutation-id'
)
;
$address
->
setFirstName
(
'order-address-first-name'
)
;
$address
->
setLastName
(
'order-address-last-name'
)
;
$address
->
setStreet
(
'order-address-street'
)
;
$address
->
setZipcode
(
'order-address-zipcode'
)
;
$address
->
setCity
(
'order-address-city'
)
;
static
::
assertEquals
(
new
NotBlank
(
)
,
$stateIds
[
0
]
)
;
static
::
assertEquals
(
new
ArrayOfUuid
(
)
,
$stateIds
[
1
]
)
;
}
/** * @dataProvider getMatchValues */
public
function
testRuleMatching
(
string
$operator
, bool
$isMatching
, string
$stateId
, bool
$stateExists
= true
)
: void
{
$countryIds
=
[
'kyln123', 'kyln456'
]
;
$salesChannelContext
=
$this
->
createMock
(
SalesChannelContext::
class
)
;
$state
=
new
CountryStateEntity
(
)
;
$state
->
setId
(
$stateId
)
;
$state
=
$stateExists
?
$state
: null;
$shippingLocation
=
new
ShippingLocation
(
new
CountryEntity
(
)
,
$state
, null
)
;
$salesChannelContext
->
method
(
'getShippingLocation'
)
->
willReturn
(
$shippingLocation
)
;
$scope
=
new
CheckoutRuleScope
(
$salesChannelContext
)
;
$this
->rule->
assign
(
[
'stateIds' =>
$countryIds
, 'operator' =>
$operator
]
)
;
$match
=
$this
->rule->
match
(
$scope
)
;
if
(
$isMatching
)
{
new
DeliveryPositionCollection
(
[
new
DeliveryPosition
(
$this
->ids->
get
(
'delivery-position-1'
)
,
$lineItem
,
1,
clone
$calculatedPrice
,
new
DeliveryDate
(
new
\
DateTimeImmutable
(
)
,
new
\
DateTimeImmutable
(
)
)
)
,
]
)
,
new
DeliveryDate
(
new
\
DateTimeImmutable
(
)
,
new
\
DateTimeImmutable
(
)
)
,
new
ShippingMethodEntity
(
)
,
new
ShippingLocation
(
new
CountryEntity
(
)
,
new
CountryStateEntity
(
)
, null
)
,
clone
$calculatedPrice
)
,
]
)
;
$cart
->
addDeliveries
(
$deliveries
)
;
$calculator
=
new
AmountCalculator
(
new
CashRounding
(
)
,
new
PercentageTaxRuleBuilder
(
)
,
new
TaxCalculator
(
)
)
;
$taxes
=
new
TaxCollection
(
[
$tax
]
)
;
}
if
(
!
$country
)
{
$country
=
new
CountryEntity
(
)
;
$country
->
setId
(
'5cff02b1029741a4891c430bcd9e3603'
)
;
$country
->
setCustomerTax
(
new
TaxFreeConfig
(
false, Defaults::CURRENCY, 0
)
)
;
$country
->
setCompanyTax
(
new
TaxFreeConfig
(
false, Defaults::CURRENCY, 0
)
)
;
$country
->
setName
(
'Germany'
)
;
}
if
(
!
$state
)
{
$state
=
new
CountryStateEntity
(
)
;
$state
->
setId
(
'bd5e2dcf547e4df6bb1ff58a554bc69e'
)
;
$state
->
setCountryId
(
$country
->
getId
(
)
)
;
}
if
(
!
$shipping
)
{
$shipping
=
new
CustomerAddressEntity
(
)
;
$shipping
->
setCountry
(
$country
)
;
$shipping
->
setCountryState
(
$state
)
;
}
if
(
!
$paymentMethod
)
{