You are here

protected function PriceCalculatedFormatterTest::setUp in Commerce Core 8.2

Overrides OrderKernelTestBase::setUp

File

modules/order/tests/src/Kernel/Formatter/PriceCalculatedFormatterTest.php, line 54

Class

PriceCalculatedFormatterTest
Tests the calculated price formatter.

Namespace

Drupal\Tests\commerce_order\Kernel\Formatter

Code

protected function setUp() : void {
  parent::setUp();
  $this
    ->installEntitySchema('commerce_promotion');
  $this
    ->installSchema('commerce_promotion', [
    'commerce_promotion_usage',
  ]);
  $promotion = Promotion::create([
    'name' => 'Promotion 1',
    'order_types' => [
      'default',
    ],
    'stores' => [
      $this->store
        ->id(),
    ],
    'status' => TRUE,
    'offer' => [
      'target_plugin_id' => 'order_item_percentage_off',
      'target_plugin_configuration' => [
        'percentage' => '0.5',
      ],
    ],
  ]);
  $promotion
    ->save();

  // The default store is US-WI, so imagine that the US has VAT.
  TaxType::create([
    'id' => 'us_vat',
    'label' => 'US VAT',
    'plugin' => 'custom',
    'configuration' => [
      'display_inclusive' => TRUE,
      'rates' => [
        [
          'id' => 'standard',
          'label' => 'Standard',
          'percentage' => '0.2',
        ],
      ],
      'territories' => [
        [
          'country_code' => 'US',
          'administrative_area' => 'WI',
        ],
        [
          'country_code' => 'US',
          'administrative_area' => 'SC',
        ],
      ],
    ],
  ])
    ->save();
  $first_variation = ProductVariation::create([
    'type' => 'default',
    'sku' => 'TEST_CALCULATED_PRICE',
    'status' => 1,
    'price' => new Price('3.00', 'USD'),
  ]);
  $first_variation
    ->save();
  $second_variation = ProductVariation::create([
    'type' => 'default',
    'sku' => 'TEST_CALCULATED_PRICE2',
    'status' => 1,
    'price' => new Price('4.00', 'USD'),
  ]);
  $second_variation
    ->save();
  $product = Product::create([
    'type' => 'default',
    'title' => 'Default testing product',
    'stores' => [
      $this->store
        ->id(),
    ],
    'variations' => [
      $first_variation,
      $second_variation,
    ],
  ]);
  $product
    ->save();
  $this->firstVariation = $this
    ->reloadEntity($first_variation);
  $this->secondVariation = $this
    ->reloadEntity($second_variation);
  $user = $this
    ->createUser([
    'mail' => 'user1@example.com',
  ]);
  $this->container
    ->get('current_user')
    ->setAccount($user);
  $this->viewBuilder = $this->container
    ->get('entity_type.manager')
    ->getViewBuilder('commerce_product_variation');
}