Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
CountryStateCollection example
use
Shopware\Core\Framework\Log\Package;
use
Shopware\Core\System\Country\Aggregate\CountryState\CountryStateCollection;
use
Shopware\Storefront\Pagelet\Pagelet;
#[Package('storefront')]
class
CountryStateDataPagelet
extends
Pagelet
{
protected
CountryStateCollection
$states
;
public
function
__construct
(
)
{
$this
->states =
new
CountryStateCollection
(
)
;
}
public
function
getStates
(
)
: CountryStateCollection
{
return
$this
->states;
}
public
function
setStates
(
CountryStateCollection
$states
)
: void
{
$this
->states =
$states
;
}
}
if
(
$exceptionMessage
!== null
)
{
static
::
expectExceptionMessage
(
$exceptionMessage
)
;
}
$currencyRepository
=
new
StaticEntityRepository
(
[
new
CurrencyCollection
(
$entitySearchResult
[
CurrencyDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$customerGroupRepository
=
new
StaticEntityRepository
(
[
new
CustomerGroupCollection
(
$entitySearchResult
[
CustomerGroupDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$countryRepository
=
new
StaticEntityRepository
(
[
new
CountryCollection
(
$entitySearchResult
[
CountryDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$taxRepository
=
new
StaticEntityRepository
(
[
new
TaxCollection
(
$entitySearchResult
[
TaxDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$paymentMethodRepository
=
new
StaticEntityRepository
(
[
new
PaymentMethodCollection
(
$entitySearchResult
[
PaymentMethodDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$shippingMethodRepository
=
new
StaticEntityRepository
(
[
new
ShippingMethodCollection
(
$entitySearchResult
[
ShippingMethodDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$salesChannelRepository
=
new
StaticEntityRepository
(
[
new
SalesChannelCollection
(
$entitySearchResult
[
SalesChannelDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$countryStateRepository
=
new
StaticEntityRepository
(
[
new
CountryStateCollection
(
$entitySearchResult
[
CountryStateDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$currencyCountryRepository
=
new
StaticEntityRepository
(
[
new
CurrencyCountryRoundingCollection
(
$entitySearchResult
[
CurrencyCountryRoundingDefinition::ENTITY_NAME
]
??
[
]
)
]
)
;
$connection
=
$this
->
createMock
(
Connection::
class
)
;
$connection
->
expects
(
static
::
once
(
)
)
->
method
(
'fetchAssociative'
)
->
willReturn
(
$fetchDataResult
)
;
if
(
$fetchDataResult
=== false
)
{
$connection
->
expects
(
static
::
never
(
)
)
->
method
(
'createQueryBuilder'
)
;
}
if
(
$fetchParentLanguageResult
!== false
)
{
$result
=
$this
->
createMock
(
Result::
class
)
;
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
CountryStateRouteResponse
(
new
EntitySearchResult
(
'entity',
1,
new
CountryStateCollection
(
)
,
null,
new
Criteria
(
)
,
Context::
createDefaultContext
(
)
)
)
;
$this
->cachedRoute =
new
CachedCountryStateRoute
(
$this
->decorated,
$this
->cache,
$this
->
createMock
(
EntityCacheKeyGenerator::
class
)
,
$this
->
createMock
(
AbstractCacheTracer::
class
)
,
public
function
getCountries
(
)
: CountryCollection
{
return
new
CountryCollection
(
$this
->
fmap
(
fn
(
OrderAddressEntity
$orderAddress
)
=>
$orderAddress
->
getCountry
(
)
)
)
;
}
public
function
getCountryStates
(
)
: CountryStateCollection
{
return
new
CountryStateCollection
(
$this
->
fmap
(
fn
(
OrderAddressEntity
$orderAddress
)
=>
$orderAddress
->
getCountryState
(
)
)
)
;
}
public
function
getApiAlias
(
)
: string
{
return
'order_address_collection';
}
protected
function
getExpectedClass
(
)
: string
{
public
function
getCountries
(
)
: CountryCollection
{
return
new
CountryCollection
(
$this
->
fmap
(
fn
(
CustomerAddressEntity
$customerAddress
)
=>
$customerAddress
->
getCountry
(
)
)
)
;
}
public
function
getCountryStates
(
)
: CountryStateCollection
{
return
new
CountryStateCollection
(
$this
->
fmap
(
fn
(
CustomerAddressEntity
$customerAddress
)
=>
$customerAddress
->
getCountryState
(
)
)
)
;
}
public
function
sortByDefaultAddress
(
CustomerEntity
$customer
)
: CustomerAddressCollection
{
$this
->
sort
(
function
DCustomerAddressEntity
$a
, CustomerAddressEntity
$b
)
use
(
$customer
)
{
if
(
$a
->
getId
(
)
===
$customer
->
getDefaultBillingAddressId
(
)
||
$a
->
getId
(
)
===
$customer
->
getDefaultShippingAddressId
(
)
)
{
return
-1;
}