102 lines
2.6 KiB
PHP
102 lines
2.6 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2023 Adobe
|
|
* All Rights Reserved.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\GraphQl\Quote\Customer;
|
|
|
|
use Magento\Customer\Test\Fixture\Customer;
|
|
use Magento\GraphQl\GetCustomerAuthenticationHeader;
|
|
use Magento\Quote\Model\QuoteIdMaskFactory;
|
|
use Magento\Quote\Model\ResourceModel\Quote\CollectionFactory as QuoteCollectionFactory;
|
|
use Magento\Quote\Model\ResourceModel\Quote as QuoteResource;
|
|
use Magento\TestFramework\Fixture\DataFixture;
|
|
use Magento\TestFramework\Fixture\DataFixtureStorageManager;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
use Magento\TestFramework\ObjectManager;
|
|
use Magento\TestFramework\TestCase\GraphQlAbstract;
|
|
|
|
/**
|
|
* Test for guest cart creation mutation for customer
|
|
*/
|
|
class CreateGuestCartTest extends GraphQlAbstract
|
|
{
|
|
/**
|
|
* @var ObjectManager
|
|
*/
|
|
private $objectManager;
|
|
|
|
/**
|
|
* @var QuoteCollectionFactory
|
|
*/
|
|
private $quoteCollectionFactory;
|
|
|
|
/**
|
|
* @var QuoteResource
|
|
*/
|
|
private $quoteResource;
|
|
|
|
/**
|
|
* @var QuoteIdMaskFactory
|
|
*/
|
|
private $quoteIdMaskFactory;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->objectManager = Bootstrap::getObjectManager();
|
|
$this->quoteCollectionFactory = $this->objectManager->get(QuoteCollectionFactory::class);
|
|
$this->quoteResource = $this->objectManager->get(QuoteResource::class);
|
|
$this->quoteIdMaskFactory = $this->objectManager->get(QuoteIdMaskFactory::class);
|
|
}
|
|
|
|
#[
|
|
DataFixture(Customer::class, as: 'customer')
|
|
]
|
|
public function testFailForLoggedInUser()
|
|
{
|
|
$this->expectException(\Exception::class);
|
|
$this->expectExceptionMessage("Use `Query.customerCart` for logged in customer.");
|
|
|
|
$customer = DataFixtureStorageManager::getStorage()->get('customer');
|
|
|
|
$query = $this->getQuery();
|
|
$this->graphQlMutation(
|
|
$query,
|
|
[],
|
|
'',
|
|
$this->objectManager->get(GetCustomerAuthenticationHeader::class)->execute($customer->getEmail())
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
private function getQuery(): string
|
|
{
|
|
return <<<QUERY
|
|
mutation {
|
|
createGuestCart {
|
|
cart {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
QUERY;
|
|
}
|
|
|
|
protected function tearDown(): void
|
|
{
|
|
$quoteCollection = $this->quoteCollectionFactory->create();
|
|
foreach ($quoteCollection as $quote) {
|
|
$this->quoteResource->delete($quote);
|
|
|
|
$quoteIdMask = $this->quoteIdMaskFactory->create();
|
|
$quoteIdMask->setQuoteId($quote->getId())
|
|
->delete();
|
|
}
|
|
parent::tearDown();
|
|
}
|
|
}
|