You are here

protected function ProductTestTrait::createProduct in Ubercart 8.4

Creates a new product.

Parameters

array $product: (optional) An associative array of product fields to change from the defaults, keys are product field names. For example, 'price' => '12.34'.

Return value

\Drupal\node\NodeInterface Product node object.

32 calls to ProductTestTrait::createProduct()
AjaxTest::testCheckoutAjax in uc_store/tests/src/FunctionalJavascript/AjaxTest.php
Tests Ajax on the checkout form.
AjaxTest::testCheckoutPaneAjax in uc_store/tests/src/FunctionalJavascript/AjaxTest.php
Tests Ajax on the checkout panes.
AttributeTest::testAttributeAddToCart in uc_attribute/tests/src/Functional/AttributeTest.php
Tests that product in cart has the selected attribute option.
AttributeTest::testAttributeApi in uc_attribute/tests/src/Functional/AttributeTest.php
Tests the basic attribute API.
AttributeTest::testAttributeUiProductAdjustments in uc_attribute/tests/src/Functional/AttributeTest.php
Tests the "product adjustments" page.

... See full list

File

uc_product/tests/src/Traits/ProductTestTrait.php, line 26

Class

ProductTestTrait
Utility functions to provide products for test purposes.

Namespace

Drupal\Tests\uc_product\Traits

Code

protected function createProduct(array $product = []) {

  // Set the default required fields.
  $weight_units = [
    'lb',
    'kg',
    'oz',
    'g',
  ];
  $length_units = [
    'in',
    'ft',
    'cm',
    'mm',
  ];
  $product += [
    'type' => 'product',
    'model' => $this
      ->randomMachineName(8),
    'cost' => mt_rand(1, 9999),
    'price' => mt_rand(1, 9999),
    'weight' => [
      0 => [
        'value' => mt_rand(1, 9999),
        'units' => array_rand(array_flip($weight_units)),
      ],
    ],
    'dimensions' => [
      0 => [
        'length' => mt_rand(1, 9999),
        'width' => mt_rand(1, 9999),
        'height' => mt_rand(1, 9999),
        'units' => array_rand(array_flip($length_units)),
      ],
    ],
    'pkg_qty' => mt_rand(1, 99),
    'default_qty' => 1,
    'shippable' => 1,
  ];
  $product['model'] = [
    [
      'value' => $product['model'],
    ],
  ];
  $product['price'] = [
    [
      'value' => $product['price'],
    ],
  ];
  return $this
    ->drupalCreateNode($product);
}