123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Downloadable\Model\Observer;
- /**
- * Integration test for case, when customer is able to download
- * downloadable product, after order was canceled.
- */
- class SetLinkStatusObserverTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * Object manager
- * @var \Magento\Framework\ObjectManagerInterface
- */
- private $objectManager;
- /**
- * Initialization of dependencies
- */
- protected function setUp()
- {
- $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
- }
- /**
- * Asserting, that links status is expired after canceling of order.
- * This test relates to the GitHub issue magento/magento2#8515.
- *
- * @magentoDataFixture Magento/Downloadable/_files/product_downloadable.php
- * @magentoDataFixture Magento/Downloadable/_files/order_with_downloadable_product.php
- * @magentoDbIsolation disabled
- */
- public function testCheckStatusOnOrderCancel()
- {
- /** @var \Magento\Sales\Model\Order $order */
- $order = $this->objectManager->create(\Magento\Sales\Model\Order::class);
- $order->loadByIncrementId('100000001');
- $orderItems = $order->getAllItems();
- $items = array_values($orderItems);
- /** @var \Magento\Sales\Model\Order\Item $orderItem */
- $orderItem = array_shift($items);
- /** Canceling order to reproduce test case */
- $order->setState(\Magento\Sales\Model\Order::STATE_CANCELED);
- $order->save();
- /** @var \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\Collection $linkCollection */
- $linkCollection = $this->objectManager->create(
- \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory::class
- )->create();
- $linkCollection->addFieldToFilter('order_item_id', $orderItem->getId());
- /** Assert there are items in linkCollection to avoid false-positive test result. */
- $this->assertGreaterThan(0, $linkCollection->count());
- /** @var \Magento\Downloadable\Model\Link\Purchased\Item $linkItem */
- foreach ($linkCollection->getItems() as $linkItem) {
- $this->assertEquals(
- \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_EXPIRED,
- $linkItem->getStatus()
- );
- }
- }
- }
|