CartTest.php 1.58 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Checkout\Model;

use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\TestFramework\Helper\Bootstrap;

class CartTest extends \PHPUnit\Framework\TestCase
{
    /**
     * @var Cart
     */
    private $cart;

    /**
     * @var ProductRepositoryInterface
     */
    private $productRepository;

    protected function setUp()
    {
        $this->cart = Bootstrap::getObjectManager()->create(Cart::class);
        $this->productRepository = Bootstrap::getObjectManager()->create(ProductRepositoryInterface::class);
    }

    /**
     * @magentoDataFixture Magento/Checkout/_files/simple_product.php
     * @magentoDataFixture Magento/Checkout/_files/set_product_min_in_cart.php
     * @magentoDbIsolation enabled
     * @magentoAppIsolation enabled
     */
    public function testAddProductWithLowerQty()
    {
        $this->expectException(\Magento\Framework\Exception\LocalizedException::class);
        $this->expectExceptionMessage('The fewest you may purchase is 3');
        $product = $this->productRepository->get('simple');
        $this->cart->addProduct($product->getId(), ['qty' => 1]);
    }

    /**
     * @magentoDataFixture Magento/Checkout/_files/simple_product.php
     * @magentoDataFixture Magento/Checkout/_files/set_product_min_in_cart.php
     * @magentoDbIsolation enabled
     */
    public function testAddProductWithNoQty()
    {
        $product = $this->productRepository->get('simple');
        $this->cart->addProduct($product->getId(), []);
    }
}