commerce_trustedshops-8.x-2.x-dev/tests/src/Unit/Event/AlterProductDataEventTest.php

tests/src/Unit/Event/AlterProductDataEventTest.php
<?php

namespace Drupal\Tests\commerce_trustedshops\Unit\Event;

use Drupal\commerce_order\Entity\OrderItemInterface;
use Drupal\commerce_trustedshops\Event\AlterProductDataEvent;
use Drupal\Tests\UnitTestCase;
use Prophecy\Prophet;

/**
 * @coversDefaultClass \Drupal\commerce_trustedshops\Event\AlterProductDataEvent
 *
 * @group commerce_trustedshops
 */
class AlterProductDataEventTest extends UnitTestCase {

  /**
   * The prophecy object.
   *
   * @var \Prophecy\Prophet
   */
  private $prophet;

  /**
   * {@inheritdoc}
   */
  public function setUp(): void {
    parent::setUp();
    $this->prophet = new Prophet();
  }

  /**
   * {@inheritdoc}
   */
  protected function tearDown(): void {
    parent::tearDown();

    $this->prophet->checkPredictions();
  }

  /**
   * @covers ::getProductData
   * @covers ::setProductData
   * @covers ::getOrderItem
   */
  public function testEvent() {
    /** @var \Drupal\commerce_order\Entity\OrderItemInterface $orderItem */
    $orderItem = $this->prophet->prophesize(OrderItemInterface::class)->reveal();

    $event = new AlterProductDataEvent([
      'name' => 'Initial product',
      'sku' => 'test-123',
    ], $orderItem);

    $this->assertEquals([
      'name' => 'Initial product',
      'sku' => 'test-123',
    ], $event->getProductData());

    $event->setProductData([
      'name' => 'Updated product',
    ]);

    $this->assertEquals([
      'name' => 'Updated product',
    ], $event->getProductData());

    $this->assertInstanceOf(OrderItemInterface::class, $event->getOrderItem());
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc