![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Wishlist/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Wishlist\Model; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Catalog\Model\Product\Exception as ProductException; use Magento\Checkout\Model\CartFactory; use Magento\Framework\App\ObjectManager; use Magento\Framework\DataObjectFactory; use Magento\TestFramework\Wishlist\Model\GetWishlistByCustomerId; use Magento\Wishlist\Model\Item\OptionFactory; use PHPUnit\Framework\TestCase; /** * Tests for wish list item model. * * @magentoDbIsolation enabled * @magentoAppIsolation disabled */ class ItemTest extends TestCase { /** @var ObjectManager */ private $objectManager; /** @var Item */ private $model; /** @var DataObjectFactory */ private $dataObjectFactory; /** @var OptionFactory */ private $optionFactory; /** @var GetWishlistByCustomerId */ private $getWishlistByCustomerId; /** @var CartFactory */ private $cartFactory; /** @var ProductRepositoryInterface */ private $productRepository; /** @var ItemFactory */ private $itemFactory; /** * @inheritdoc */ protected function setUp(): void { parent::setUp(); $this->objectManager = ObjectManager::getInstance(); $this->dataObjectFactory = $this->objectManager->get(DataObjectFactory::class); $this->model = $this->objectManager->get(Item::class); $this->itemFactory = $this->objectManager->get(ItemFactory::class); $this->optionFactory = $this->objectManager->get(OptionFactory::class); $this->getWishlistByCustomerId = $this->objectManager->get(GetWishlistByCustomerId::class); $this->cartFactory = $this->objectManager->get(CartFactory::class); $this->productRepository = $this->objectManager->get(ProductRepositoryInterface::class); $this->productRepository->cleanCache(); } /** * @inheritdoc */ protected function tearDown(): void { $this->cartFactory->create()->truncate(); parent::tearDown(); } /** * @magentoDataFixture Magento/Catalog/_files/product_simple.php * * @return void */ public function testBuyRequest(): void { $product = $this->productRepository->get('simple'); $option = $this->optionFactory->create( ['data' => ['code' => 'info_buyRequest', 'value' => '{"qty":23}']] ); $option->setProduct($product); $this->model->addOption($option); $buyRequest = $this->model->getBuyRequest(); $this->assertEquals($buyRequest->getOriginalQty(), 23); $this->model->mergeBuyRequest(['qty' => 11, 'additional_data' => 'some value']); $buyRequest = $this->model->getBuyRequest(); $this->assertEquals( ['additional_data' => 'some value', 'qty' => 0, 'original_qty' => 11], $buyRequest->getData() ); } /** * @return void */ public function testSetBuyRequest(): void { $buyRequest = $this->dataObjectFactory->create( ['data' => ['field_1' => 'some data', 'field_2' => 234]] ); $this->model->setBuyRequest($buyRequest); $this->assertJsonStringEqualsJsonString( '{"field_1":"some data","field_2":234,"id":null}', $this->model->getData('buy_request') ); } /** * @magentoDataFixture Magento/Wishlist/_files/wishlist_with_simple_product.php * @magentoDbIsolation disabled * * @return void */ public function testAddItemToCart(): void { $item = $this->getWishlistByCustomerId->getItemBySku(1, 'simple-1'); $this->assertNotNull($item); $cart = $this->cartFactory->create(); $this->assertTrue($item->addToCart($cart)); $this->assertCount(1, $cart->getQuote()->getItemsCollection()); $this->assertCount(1, $this->getWishlistByCustomerId->execute(1)->getItemCollection()); } /** * @magentoDataFixture Magento/Wishlist/_files/wishlist_with_simple_product.php * @magentoDbIsolation disabled * * @return void */ public function testAddItemToCartAndDeleteFromWishList(): void { $item = $this->getWishlistByCustomerId->getItemBySku(1, 'simple-1'); $this->assertNotNull($item); $cart = $this->cartFactory->create(); $item->addToCart($cart, true); $this->assertCount(1, $cart->getQuote()->getItemsCollection()); $this->assertCount(0, $this->getWishlistByCustomerId->execute(1)->getItemCollection()); } /** * @magentoDataFixture Magento/Catalog/_files/product_simple_out_of_stock.php * * @return void */ public function testAddOutOfStockItemToCart(): void { $product = $this->productRepository->get('simple-out-of-stock'); $item = $this->itemFactory->create()->setProduct($product); $this->expectExceptionObject(new ProductException(__('Product is not salable.'))); $item->addToCart($this->cartFactory->create()); } /** * @magentoDataFixture Magento/Catalog/_files/multiple_products.php * * @return void */ public function testAddDisabledItemToCart(): void { $product = $this->productRepository->get('simple3'); $item = $this->itemFactory->create()->setProduct($product); $this->assertFalse($item->addToCart($this->cartFactory->create())); } /** * @magentoDataFixture Magento/Catalog/_files/simple_products_not_visible_individually.php * * @return void */ public function testAddNotVisibleItemToCart(): void { $product = $this->productRepository->get('simple_not_visible_1'); $item = $this->itemFactory->create()->setProduct($product)->setStoreId($product->getStoreId()); $this->assertFalse($item->addToCart($this->cartFactory->create())); } }