acquia_commercemanager-8.x-1.122/modules/acm_sku/tests/src/Functional/ProductManagerTest.php

modules/acm_sku/tests/src/Functional/ProductManagerTest.php
<?php

namespace Drupal\Tests\acm_sku\Functional;

use Drupal\Tests\BrowserTestBase;
use Drupal\taxonomy\Entity\Term;

/**
 * @coversDefaultClass \Drupal\acm_sku\ProductManager
 *
 * @group acm_sku
 */
class ProductManagerTest extends BrowserTestBase {
  /**
   * {@inheritdoc}
   */
  public static $modules = [
    'system',
    'config',
    'field',
    'filter',
    'text',
    'file',
    'image',
    'options',
    'key_value_field',
    'node',
    'user',
    'taxonomy',
    'language',
    'rest',
    'simple_oauth',
    'simple_oauth_extras',
    'serialization',
    'acm',
    'acm_sku',
    'acm_product',
    'pcb',
  ];

  /**
   * {@inheritdoc}
   */
  public function setUp() {
    parent::setUp();
    Term::create([
      'vid' => 'acm_product_category',
      'name' => 'Cat1',
      'middleware_id' => 1,
    ])->save();

    // Load categories data.
    module_load_include('data', 'acm_sku', 'tests/data/products');
  }

  /**
   * Tests the synchronizeProducts method with no data passed.
   *
   * @covers ::synchronizeProducts
   */
  public function testSynchronizeNoProducts() {
    $result = $this->container->get('acm_sku.product_manager')->synchronizeProducts();
    $processed = $result['created'] + $result['updated'] + $result['failed'] + $result['ignored'] + $result['deleted'];
    $this->assertSame($processed, 0);
  }

  /**
   * Tests the synchronizeProducts method with simple product data passed.
   *
   * @covers ::synchronizeProducts
   */
  public function testSynchronizeSimpleProducts() {
    global $_acm_commerce_simple_products;

    $result = $this->container->get('acm_sku.product_manager')
      ->synchronizeProducts($_acm_commerce_simple_products);

    $this->assertSame($result["success"], TRUE);
    // 2 nodes and 2 skus created.
    $this->assertSame($result["created"], 4);

    $nodes = $this->container->get('entity_type.manager')
      ->getStorage("node")
      ->loadByProperties(["title" => "Sac de marin Joute"]);
    // Fetch the first element of the array $nodes.
    $node = reset($nodes);
    $this->assertNotNull($node);
    $this->assertSame($node->get("title")->value, "Sac de marin Joute");
    $this->assertSame($node->get("field_skus")->value, "24-MB01");
    $nodes = NULL;
    $node = NULL;

    $nodes = $this->container->get('entity_type.manager')
      ->getStorage("node")
      ->loadByProperties(["title" => "Sac de champ"]);
    $node = reset($nodes);
    $this->assertNotNull($node);
    $this->assertSame($node->get("title")->value, "Sac de champ");
    $this->assertSame($node->get("field_skus")->value, "24-MB06");
    $nodes = NULL;
    $node = NULL;

    $skus = $this->container->get('entity_type.manager')
      ->getStorage("acm_sku")
      ->loadByProperties(["sku" => "24-MB01"]);
    // Fetch the first element of the array $skus.
    $sku = reset($skus);
    $this->assertNotNull($sku);
    $this->assertSame($sku->get("sku")->value, "24-MB01");
    $skus = NULL;
    $sku = NULL;

    $skus = $this->container->get('entity_type.manager')
      ->getStorage("acm_sku")
      ->loadByProperties(["sku" => "24-MB06"]);
    $sku = reset($skus);
    $this->assertNotNull($sku);
    $this->assertSame($sku->get("sku")->value, "24-MB06");
    $skus = NULL;
    $sku = NULL;
  }

  /**
   * Tests the synchronizeProducts method with simple product data passed.
   *
   * Here we add categories and extension attributes into the data passed in.
   *
   * @covers ::synchronizeProducts
   */
  public function testSynchronizeSimpleProductsWithMoreData() {
    global $_acm_commerce_simple_products_more_data;

    $result = $this->container->get('acm_sku.product_manager')
      ->synchronizeProducts($_acm_commerce_simple_products_more_data);
    $this->assertSame($result["success"], TRUE);
    // 2 nodes and 2 skus created.
    $this->assertSame($result["created"], 4);

    $nodes = $this->container->get('entity_type.manager')
      ->getStorage("node")
      ->loadByProperties(["title" => "Joust Duffle Bag"]);
    // Fetch the first element of the array $nodes.
    $node = reset($nodes);
    $this->assertNotNull($node);
    $this->assertSame($node->get("title")->value, "Joust Duffle Bag");
    $this->assertSame($node->get("field_skus")->value, "24-MB02");
    $nodes = NULL;
    $node = NULL;

    $nodes = $this->container->get('entity_type.manager')
      ->getStorage("node")
      ->loadByProperties(["title" => "Field Messenger"]);
    // Fetch the first element of the array $nodes.
    $node = reset($nodes);
    $this->assertNotNull($node);
    $this->assertSame($node->get("title")->value, "Field Messenger");
    $this->assertSame($node->get("field_skus")->value, "24-MB07");
    $nodes = NULL;
    $node = NULL;

    $skus = $this->container->get('entity_type.manager')
      ->getStorage("acm_sku")
      ->loadByProperties(["sku" => "24-MB02"]);
    // Fetch the first element of the array $skus.
    $sku = reset($skus);
    $this->assertNotNull($sku);
    $this->assertSame($sku->get("sku")->value, "24-MB02");
    $skus = NULL;
    $sku = NULL;

    $skus = $this->container->get('entity_type.manager')
      ->getStorage("acm_sku")
      ->loadByProperties(["sku" => "24-MB07"]);
    $sku = reset($skus);
    $this->assertNotNull($sku);
    $this->assertSame($sku->get("sku")->value, "24-MB07");
    $skus = NULL;
    $sku = NULL;
  }

}

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

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