Skip to content

Commit 8979c2d

Browse files
author
Yaroslav Onischenko
committed
MAGETWO-53170: Add/Remove product actions are not observed by update cart qty event
1 parent bef590c commit 8979c2d

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Checkout\Test\Unit\CustomerData;
7+
8+
class DefaultItemTest extends \PHPUnit_Framework_TestCase
9+
{
10+
/**
11+
* @var \Magento\Checkout\CustomerData\DefaultItem
12+
*/
13+
protected $model;
14+
15+
/**
16+
* @var \Magento\Catalog\Helper\Image
17+
*/
18+
private $imageHelper;
19+
20+
/**
21+
* @var \Magento\Catalog\Helper\Product\ConfigurationPool
22+
*/
23+
private $configurationPool;
24+
25+
protected function setUp()
26+
{
27+
$objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
28+
$this->imageHelper = $this->getMockBuilder(\Magento\Catalog\Helper\Image::class)
29+
->disableOriginalConstructor()
30+
->getMock();
31+
$this->configurationPool = $this->getMockBuilder(\Magento\Catalog\Helper\Product\ConfigurationPool::class)
32+
->setMethods([])
33+
->disableOriginalConstructor()
34+
->getMock();
35+
$checkoutHelper = $this->getMockBuilder(\Magento\Checkout\Helper\Data::class)
36+
->setMethods(['formatPrice'])->disableOriginalConstructor()->getMock();
37+
$checkoutHelper->expects($this->any())->method('formatPrice')->willReturn(5);
38+
$this->model = $objectManager->getObject(
39+
\Magento\Checkout\CustomerData\DefaultItem::class,
40+
[
41+
'imageHelper' => $this->imageHelper,
42+
'configurationPool' => $this->configurationPool,
43+
'checkoutHelper' => $checkoutHelper
44+
]
45+
);
46+
}
47+
48+
public function testGetItemData()
49+
{
50+
$urlModel = $this->getMockBuilder(\Magento\Catalog\Model\Product\Url::class)
51+
->disableOriginalConstructor()
52+
->getMock();
53+
$product = $this->getMockBuilder(\Magento\Catalog\Model\Product::class)
54+
->setMethods(['getUrlModel', 'isVisibleInSiteVisibility', 'getSku'])
55+
->disableOriginalConstructor()
56+
->getMock();
57+
$product->expects($this->any())->method('getUrlModel')->willReturn($urlModel);
58+
$product->expects($this->any())->method('isVisibleInSiteVisibility')->willReturn(true);
59+
$product->expects($this->any())->method('getSku')->willReturn('simple');
60+
/** @var \Magento\Quote\Model\Quote\Item $item */
61+
$item = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
62+
->setMethods(['getProductType', 'getProduct', 'getCalculationPrice'])
63+
->disableOriginalConstructor()
64+
->getMock();
65+
$item->expects($this->any())->method('getProduct')->willReturn($product);
66+
$item->expects($this->any())->method('getProductType')->willReturn('simple');
67+
$item->expects($this->any())->method('getCalculationPrice')->willReturn(5);
68+
69+
$this->imageHelper->expects($this->any())->method('init')->with($product)->willReturnSelf();
70+
$this->imageHelper->expects($this->any())->method('getUrl')->willReturn('url');
71+
$this->imageHelper->expects($this->any())->method('getLabel')->willReturn('label');
72+
$this->imageHelper->expects($this->any())->method('getWidth')->willReturn(100);
73+
$this->imageHelper->expects($this->any())->method('getHeight')->willReturn(100);
74+
$this->configurationPool->expects($this->any())->method('getByProductType')->willReturn($product);
75+
76+
$itemData = $this->model->getItemData($item);
77+
$this->assertArrayHasKey('options', $itemData);
78+
$this->assertArrayHasKey('qty', $itemData);
79+
$this->assertArrayHasKey('item_id', $itemData);
80+
$this->assertArrayHasKey('configure_url', $itemData);
81+
$this->assertArrayHasKey('is_visible_in_site_visibility', $itemData);
82+
$this->assertArrayHasKey('product_type', $itemData);
83+
$this->assertArrayHasKey('product_name', $itemData);
84+
$this->assertArrayHasKey('product_sku', $itemData);
85+
$this->assertArrayHasKey('product_url', $itemData);
86+
$this->assertArrayHasKey('product_has_url', $itemData);
87+
$this->assertArrayHasKey('product_price', $itemData);
88+
$this->assertArrayHasKey('product_image', $itemData);
89+
$this->assertArrayHasKey('canApplyMsrp', $itemData);
90+
}
91+
}
92+

0 commit comments

Comments
 (0)