CartEventTest.php in Commerce Google Tag Manager 8.2
File
tests/src/Kernel/EventSubscriber/CartEventTest.php
View source
<?php
namespace Drupal\Tests\commerce_google_tag_manager\Kernel\EventSubscriber;
use Drupal\Tests\commerce_google_tag_manager\Kernel\CommerceKernelTestBase;
use Drupal\commerce_google_tag_manager\EventSubscriber\CommerceEventsSubscriber;
use Drupal\commerce_price\Price;
use Drupal\commerce_product\Entity\ProductVariation;
use Drupal\commerce_cart\Event\CartEntityAddEvent;
use Drupal\commerce_cart\Event\CartOrderItemRemoveEvent;
use Drupal\Tests\commerce_cart\Traits\CartManagerTestTrait;
use Drupal\Tests\commerce_google_tag_manager\Traits\DeprecationSuppressionTrait;
class CartEventTest extends CommerceKernelTestBase {
use CartManagerTestTrait;
use DeprecationSuppressionTrait;
public static $modules = [
'entity_reference_revisions',
'profile',
];
protected $cartManager;
protected $cartProvider;
protected $variation;
protected $user;
private $eventDispatcher;
protected function setUp() : void {
parent::setUp();
$this->variation = ProductVariation::create([
'type' => 'default',
'sku' => strtolower($this
->randomMachineName()),
'title' => $this
->randomString(),
'price' => new Price('1.00', 'USD'),
'status' => TRUE,
]);
$user = $this
->createUser();
$this->user = $this
->reloadEntity($user);
$this
->installCommerceCart();
$this->eventDispatcher = $this->container
->get('event_dispatcher');
$this->eventDispatcher
->removeSubscriber($this->container
->get('commerce_google_tag_manager.commerce_events_subscriber'));
}
public function testTrackCartAdd() {
$subscriber = $this
->getMockBuilder(CommerceEventsSubscriber::class)
->disableOriginalConstructor()
->setMethods([
'trackCartAdd',
])
->getMock();
$subscriber
->expects($this
->once())
->method('trackCartAdd')
->with($this
->isInstanceOf(CartEntityAddEvent::class));
$this->eventDispatcher
->addSubscriber($subscriber);
$cart = $this->cartProvider
->createCart('default', $this->store, $this->user);
$this->cartManager
->addEntity($cart, $this->variation);
}
public function testTrackCartRemove() {
$subscriber = $this
->getMockBuilder(CommerceEventsSubscriber::class)
->disableOriginalConstructor()
->setMethods([
'trackCartAdd',
'trackCartRemove',
])
->getMock();
$subscriber
->expects($this
->once())
->method('trackCartRemove')
->with($this
->isInstanceOf(CartOrderItemRemoveEvent::class));
$this->eventDispatcher
->addSubscriber($subscriber);
$cart = $this->cartProvider
->createCart('default', $this->store, $this->user);
$order_item = $this->cartManager
->addEntity($cart, $this->variation);
$this->cartManager
->removeOrderItem($cart, $order_item);
}
}