You are here

public function WishlistManagerTest::testMergeWishlist in Commerce Wishlist 8.3

Tests wishlist merge.

@covers ::merge

File

tests/src/Kernel/WishlistManagerTest.php, line 156

Class

WishlistManagerTest
Tests the wishlist manager.

Namespace

Drupal\Tests\commerce_wishlist\Kernel

Code

public function testMergeWishlist() {
  $wishlist_item_1 = WishlistItem::create([
    'type' => 'commerce_product_variation',
    'purchasable_entity' => $this->productVariationFirst,
  ]);
  $source = Wishlist::create([
    'type' => 'test_1',
    'name' => 'Source wishlist',
    'wishlist_items' => [
      $wishlist_item_1,
    ],
    'uid' => 1,
  ]);
  $source
    ->save();
  $this
    ->reloadEntity($source);
  $this
    ->assertEqual($source
    ->id(), $this->authenticatedUser
    ->id());
  $wishlist_item_2 = WishlistItem::create([
    'type' => 'commerce_product_variation',
    'purchasable_entity' => $this->productVariationFirst,
  ]);
  $wishlist_item_2
    ->save();
  $this
    ->assertInstanceOf(WishlistItemInterface::class, $wishlist_item_2);
  $target = Wishlist::create([
    'type' => 'test_1',
    'name' => 'Target wishlist',
    'wishlist_items' => [
      $wishlist_item_2,
    ],
    'uid' => 1,
  ]);
  $target
    ->save();
  $this
    ->assertEqual(count($target
    ->getItems()), 1);
  $this
    ->assertInstanceOf(WishlistInterface::class, $target);
  $this->wishlistManager
    ->merge($source, $target);
  $this
    ->reloadEntity($source);
  $this
    ->reloadEntity($target);
  $source = $this->entityTypeManager
    ->getStorage('commerce_wishlist')
    ->load($source
    ->id());
  $target = $this->entityTypeManager
    ->getStorage('commerce_wishlist')
    ->load($target
    ->id());
  $this
    ->assertInstanceOf(WishlistInterface::class, $target);
  $this
    ->assertNotInstanceOf(WishlistInterface::class, $source);
  $this
    ->assertEqual(count($target
    ->getItems()), 2);
}