Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
createCustomer example
$this
->
getBrowser
(
)
->
setServerParameter
(
'HTTP_sw-language-id', Uuid::
randomHex
(
)
)
;
$this
->
getBrowser
(
)
->
request
(
'POST', '/api/_admin/reset-excluded-search-term'
)
;
$response
=
$this
->
getBrowser
(
)
->
getResponse
(
)
;
static
::
assertEquals
(
412,
$response
->
getStatusCode
(
)
)
;
}
public
function
testValidateEmailSuccess
(
)
: void
{
$browser
=
$this
->
createClient
(
)
;
$this
->
createCustomer
(
[
'email' => 'foo@bar.de'
]
)
;
$browser
->
request
(
'POST',
'/api/_admin/check-customer-email-valid',
[
'id' => Uuid::
randomHex
(
)
,
'email' => 'foo1@bar.de',
'boundSalesChannelId' => null,
]
)
;
parent::
setUp
(
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$priceRuleId
= Uuid::
randomHex
(
)
;
$this
->salesChannelContext =
$this
->
getContainer
(
)
->
get
(
SalesChannelContextFactory::
class
)
->
create
(
Uuid::
randomHex
(
)
,
TestDefaults::SALES_CHANNEL,
[
SalesChannelContextService::CUSTOMER_ID =>
$this
->
createCustomer
(
)
,
]
)
;
$this
->salesChannelContext->
setRuleIds
(
[
$priceRuleId
]
)
;
$this
->productRepository =
$this
->
getContainer
(
)
->
get
(
'product.repository'
)
;
$this
->stornoRenderer =
$this
->
getContainer
(
)
->
get
(
StornoRenderer::
class
)
;
$this
->cartService =
$this
->
getContainer
(
)
->
get
(
CartService::
class
)
;
$this
->documentGenerator =
$this
->
getContainer
(
)
->
get
(
DocumentGenerator::
class
)
;
}
/** * @dataProvider stornoNoteRendererDataProvider * * @param array<string, string> $additionalConfig */
private
function
deleteReview
(
array
$data
)
: void
{
$this
->reviewRepository->
delete
(
$data
,
$this
->salesChannel->
getContext
(
)
)
;
}
/** * creates a review in database */
private
function
createReview
(
string
$id
, float
$points
, string
$productId
, bool
$active
)
: void
{
$customerId
= Uuid::
randomHex
(
)
;
$this
->
createCustomer
(
$customerId
)
;
$salesChannelId
=
$this
->salesChannel->
getSalesChannel
(
)
->
getId
(
)
;
$languageId
= Defaults::LANGUAGE_SYSTEM;
$title
= 'foo';
$data
=
[
'id' =>
$id
,
'productId' =>
$productId
,
'customerId' =>
$customerId
,
'salesChannelId' =>
$salesChannelId
,
'languageId' =>
$languageId
,
'status' =>
$active
,
use
CustomerTestTrait;
use
IntegrationTestBehaviour;
private
string
$hash
;
private
string
$hashId
;
protected
function
setUp
(
)
: void
{
$email
= Uuid::
randomHex
(
)
. '@example.com';
$customerId
=
$this
->
createCustomer
(
$email
)
;
$this
->hash = Random::
getAlphanumericString
(
32
)
;
$this
->hashId = Uuid::
randomHex
(
)
;
$this
->
getContainer
(
)
->
get
(
'customer_recovery.repository'
)
->
create
(
[
[
'id' =>
$this
->hashId,
'customerId' =>
$customerId
,
'hash' =>
$this
->hash,
]
,
]
, Context::
createDefaultContext
(
)
)
;
}
$this
->
getContainer
(
)
->
get
(
'product.repository'
)
->
create
(
[
$product
]
, Context::
createDefaultContext
(
)
)
;
$cart
->
add
(
(
new
LineItem
(
$id
, LineItem::PRODUCT_LINE_ITEM_TYPE,
$id
)
)
->
setGood
(
true
)
->
setStackable
(
true
)
)
;
$customerId
=
$this
->
createCustomer
(
)
;
$this
->
addCountriesToSalesChannel
(
)
;
$context
=
$this
->salesChannelContextFactory->
create
(
Uuid::
randomHex
(
)
,
TestDefaults::SALES_CHANNEL,
[
SalesChannelContextService::CUSTOMER_ID =>
$customerId
,
]
)
;
$this
->documentGenerator =
$this
->
getContainer
(
)
->
get
(
DocumentGenerator::
class
)
;
$this
->eventDispatcherMock =
$this
->
createMock
(
EventDispatcherInterface::
class
)
;
$this
->attachmentLoader =
new
AttachmentLoader
(
$this
->
getContainer
(
)
->
get
(
'document.repository'
)
,
$this
->documentGenerator,
$this
->eventDispatcherMock
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$customerId
=
$this
->
createCustomer
(
)
;
$this
->salesChannelContext =
$this
->
getContainer
(
)
->
get
(
SalesChannelContextFactory::
class
)
->
create
(
Uuid::
randomHex
(
)
,
TestDefaults::SALES_CHANNEL,
[
SalesChannelContextService::CUSTOMER_ID =>
$customerId
,
]
)
;
}
public
function
testLoad
(
)
: void
{
'id' =>
$this
->ids->
create
(
'sales-channel'
)
,
]
)
;
$this
->browser->
setServerParameter
(
'HTTP_SW_CONTEXT_TOKEN',
$this
->ids->
create
(
'token'
)
)
;
}
public
function
testAddCustomerTagAction
(
)
: void
{
$this
->
createDataTest
(
)
;
$email
= Uuid::
randomHex
(
)
. '@example.com';
$this
->
createCustomer
(
$email
)
;
$sequenceId
= Uuid::
randomHex
(
)
;
$ruleId
= Uuid::
randomHex
(
)
;
$this
->flowRepository->
create
(
[
[
'name' => 'Create Order',
'eventName' => CustomerLoginEvent::EVENT_NAME,
'priority' => 1,
'active' => true,
'sequences' =>
[
[
public
function
testEmailSend
(
array
$recipients
, ?array
$documentTypeIds
=
[
]
, ?bool
$hasOrderSettingAttachment
= true
)
: void
{
$documentRepository
=
$this
->
getContainer
(
)
->
get
(
'document.repository'
)
;
$orderRepository
=
$this
->
getContainer
(
)
->
get
(
'order.repository'
)
;
$criteria
=
new
Criteria
(
)
;
$criteria
->
setLimit
(
1
)
;
$context
= Context::
createDefaultContext
(
)
;
$customerId
=
$this
->
createCustomer
(
$context
)
;
$orderId
=
$this
->
createOrder
(
$customerId
,
$context
)
;
$mailTemplateId
=
$this
->
getContainer
(
)
->
get
(
'mail_template.repository'
)
->
searchIds
(
$criteria
,
$context
)
->
firstId
(
)
;
static
::
assertNotNull
(
$mailTemplateId
)
;
$config
=
array_filter
(
[
'mailTemplateId' =>
$mailTemplateId
,
$response
=
$this
->
getBrowser
(
)
->
getResponse
(
)
->
getContent
(
)
;
static
::
assertIsString
(
$response
)
;
$response
=
json_decode
(
$response
, true, 512, \JSON_THROW_ON_ERROR
)
;
static
::
assertEquals
(
Response::HTTP_NOT_FOUND,
$this
->
getBrowser
(
)
->
getResponse
(
)
->
getStatusCode
(
)
)
;
static
::
assertArrayHasKey
(
'errors',
$response
)
;
}
public
function
testGetAvailableStates
(
)
: void
{
$context
= Context::
createDefaultContext
(
)
;
$customerId
=
$this
->
createCustomer
(
$context
)
;
$orderId
=
$this
->
createOrder
(
$customerId
,
$context
)
;
$this
->
getBrowser
(
)
->
request
(
'GET', '/api/_action/state-machine/order/' .
$orderId
. '/state'
)
;
static
::
assertEquals
(
200,
$this
->
getBrowser
(
)
->
getResponse
(
)
->
getStatusCode
(
)
)
;
$response
=
$this
->
getBrowser
(
)
->
getResponse
(
)
->
getContent
(
)
;
static
::
assertIsString
(
$response
)
;
$response
=
json_decode
(
$response
, true, 512, \JSON_THROW_ON_ERROR
)
;
static
::
assertCount
(
2,
$response
[
'transitions'
]
)
;
static
::
assertEquals
(
'cancel',
$response
[
'transitions'
]
[
0
]
[
'actionName'
]
)
;
private
Context
$context
;
protected
function
setUp
(
)
: void
{
parent::
setUp
(
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$paymentMethod
=
$this
->
getAvailablePaymentMethod
(
)
;
$customerId
=
$this
->
createCustomer
(
$paymentMethod
->
getId
(
)
)
;
$shippingMethod
=
$this
->
getAvailableShippingMethod
(
)
;
$this
->salesChannelContext =
$this
->
getContainer
(
)
->
get
(
SalesChannelContextFactory::
class
)
->
create
(
Uuid::
randomHex
(
)
,
TestDefaults::SALES_CHANNEL,
[
SalesChannelContextService::CUSTOMER_ID =>
$customerId
,
SalesChannelContextService::SHIPPING_METHOD_ID =>
$shippingMethod
->
getId
(
)
,
SalesChannelContextService::PAYMENT_METHOD_ID =>
$paymentMethod
->
getId
(
)
,
]
)
;
private
string
$documentTypeId
;
private
string
$orderId
;
protected
function
setUp
(
)
: void
{
parent::
setUp
(
)
;
$this
->context = Context::
createDefaultContext
(
)
;
$customerId
=
$this
->
createCustomer
(
)
;
$this
->salesChannelContext =
$this
->
getContainer
(
)
->
get
(
SalesChannelContextFactory::
class
)
->
create
(
Uuid::
randomHex
(
)
,
TestDefaults::SALES_CHANNEL,
[
SalesChannelContextService::CUSTOMER_ID =>
$customerId
,
]
)
;
$this
->documentGenerator =
$this
->
getContainer
(
)
->
get
(
DocumentGenerator::
class
)
;
$this
->connection = KernelLifecycleManager::
getConnection
(
)
;
$this
->customerRepository =
$this
->
getContainer
(
)
->
get
(
'customer.repository'
)
;
}
public
function
testSetDefaultSalutationWithExistingNotSpecifiedSalutation
(
)
: void
{
$salutations
=
$this
->connection->
fetchAllKeyValue
(
'SELECT salutation_key, id FROM salutation'
)
;
static
::
assertArrayHasKey
(
SalutationDefinition::NOT_SPECIFIED,
$salutations
)
;
$this
->
createCustomer
(
)
;
/** @var CustomerEntity $customer */
$customer
=
$this
->customerRepository->
search
(
new
Criteria
(
[
$this
->ids->
get
(
'customer'
)
]
)
,
Context::
createDefaultContext
(
)
)
->
first
(
)
;
static
::
assertNotNull
(
$customer
->
getSalutationId
(
)
)
;
}
public
function
testSetDefaultSalutationToNotSpecifiedWithoutExistingSalutation
(
)
: void
{
$this
->ids =
new
TestDataCollection
(
)
;
$this
->browser =
$this
->
createCustomSalesChannelBrowser
(
[
'id' =>
$this
->ids->
create
(
'sales-channel'
)
,
]
)
;
$this
->
assignSalesChannelContext
(
$this
->browser
)
;
$this
->systemConfigService =
$this
->
getContainer
(
)
->
get
(
SystemConfigService::
class
)
;
$this
->systemConfigService->
set
(
'core.cart.wishlistEnabled', true
)
;
$email
= Uuid::
randomHex
(
)
. '@example.com';
$this
->customerId =
$this
->
createCustomer
(
$email
)
;
$this
->browser
->
request
(
'POST',
'/store-api/account/login',
[
'email' =>
$email
,
'password' => 'shopware',
]
)
;
public
function
testResetCodesAfterOrder
(
)
: void
{
$productId
= Uuid::
randomHex
(
)
;
$promotionId
= Uuid::
randomHex
(
)
;
$promotionCode
= 'BF19';
$context
=
$this
->
getContainer
(
)
->
get
(
SalesChannelContextFactory::
class
)
->
create
(
Uuid::
randomHex
(
)
,
TestDefaults::SALES_CHANNEL,
[
SalesChannelContextService::CUSTOMER_ID =>
$this
->
createCustomer
(
)
]
)
;
// add a new sample product
$this
->
createTestFixtureProduct
(
$productId
, 119, 19,
$this
->
getContainer
(
)
,
$context
)
;
// add a new promotion black friday
$this
->
createTestFixturePercentagePromotion
(
$promotionId
,
$promotionCode
, 100, null,
$this
->
getContainer
(
)
)
;
$cart
=
$this
->cartService->
getCart
(
$context
->
getToken
(
)
,
$context
)
;
// add product to cart
'id' =>
$this
->ids->
create
(
'sales-channel'
)
,
'paymentMethodId' =>
$this
->ids->
get
(
'payment'
)
,
'paymentMethods' =>
[
[
'id' =>
$this
->ids->
get
(
'payment'
)
]
,
[
'id' =>
$this
->ids->
get
(
'payment2'
)
]
,
]
,
]
)
;
$this
->
assignSalesChannelContext
(
$this
->browser
)
;
$this
->customerRepository =
$this
->
getContainer
(
)
->
get
(
'customer.repository'
)
;
$email
= Uuid::
randomHex
(
)
. '@example.com';
$this
->
createCustomer
(
$email
)
;
$this
->browser
->
request
(
'POST',
'/store-api/account/login',
[
'email' =>
$email
,
'password' => 'shopware',
]
)
;