You are here

public function ShippingMethodStorageTest::testSortingByWeight in Commerce Shipping 8.2

Tests shipping method sorting by weight.

File

tests/src/Kernel/ShippingMethodStorageTest.php, line 109

Class

ShippingMethodStorageTest
Tests the shipping method storage.

Namespace

Drupal\Tests\commerce_shipping\Kernel

Code

public function testSortingByWeight() {
  $shipping_method1 = ShippingMethod::create([
    'stores' => $this->store
      ->id(),
    'name' => 'Example 1',
    'plugin' => [
      'target_plugin_id' => 'flat_rate',
      'target_plugin_configuration' => [],
    ],
    'status' => TRUE,
    'weight' => 1,
  ]);
  $shipping_method1
    ->save();
  $shipping_method2 = ShippingMethod::create([
    'stores' => $this->store
      ->id(),
    'name' => 'Example 2',
    'plugin' => [
      'target_plugin_id' => 'flat_rate',
      'target_plugin_configuration' => [],
    ],
    'status' => TRUE,
    'weight' => 2,
  ]);
  $shipping_method2
    ->save();
  $shipping_methods = $this->storage
    ->loadMultipleForShipment($this->shipment);
  $shipping_method = array_shift($shipping_methods);
  $this
    ->assertEquals($shipping_method1
    ->label(), $shipping_method
    ->label());
  $shipping_method1
    ->setWeight(99)
    ->save();
  $shipping_methods = $this->storage
    ->loadMultipleForShipment($this->shipment);
  $shipping_method = array_shift($shipping_methods);
  $this
    ->assertEquals($shipping_method2
    ->label(), $shipping_method
    ->label());
}