You are here

public function CartEventTest::testTrackCartRemove in Commerce Google Tag Manager 8.2

Same name and namespace in other branches
  1. 8 tests/src/Kernel/EventSubscriber/CartEventTest.php \Drupal\Tests\commerce_google_tag_manager\Kernel\EventSubscriber\CartEventTest::testTrackCartRemove()

@covers ::trackCartRemove

File

tests/src/Kernel/EventSubscriber/CartEventTest.php, line 120

Class

CartEventTest
@coversDefaultClass \Drupal\commerce_google_tag_manager\EventSubscriber\CommerceEventsSubscriber

Namespace

Drupal\Tests\commerce_google_tag_manager\Kernel\EventSubscriber

Code

public function testTrackCartRemove() {

  // Create a partial-mocked version of CommerceEventsSubscriber.
  $subscriber = $this
    ->getMockBuilder(CommerceEventsSubscriber::class)
    ->disableOriginalConstructor()
    ->setMethods([
    'trackCartAdd',
    'trackCartRemove',
  ])
    ->getMock();

  // Assert the trackCartRemove will be called only once.
  $subscriber
    ->expects($this
    ->once())
    ->method('trackCartRemove')
    ->with($this
    ->isInstanceOf(CartOrderItemRemoveEvent::class));

  // Add the new mocked CommerceEventsSubscriber.
  $this->eventDispatcher
    ->addSubscriber($subscriber);

  // Remove to cart, which should fire a CartEvents::CART_ORDER_ITEM_REMOVE.
  $cart = $this->cartProvider
    ->createCart('default', $this->store, $this->user);
  $order_item = $this->cartManager
    ->addEntity($cart, $this->variation);
  $this->cartManager
    ->removeOrderItem($cart, $order_item);
}