Skip to content

Commit 0f050dc

Browse files
author
Yu Tang
committed
Merge remote-tracking branch 'origin/FearlessKiwis-MAGETWO-44078-skip_adjustments' into FearlessKiwis-develop-no-refactoring
2 parents 2de273e + dd4b6ad commit 0f050dc

File tree

2 files changed

+53
-16
lines changed

2 files changed

+53
-16
lines changed

lib/internal/Magento/Framework/Pricing/Render/Amount.php

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -171,24 +171,18 @@ public function getAdjustmentsHtml()
171171
*/
172172
protected function _toHtml()
173173
{
174-
$adjustmentRenders = $this->getApplicableAdjustmentRenders();
174+
$adjustmentRenders = $this->getAdjustmentRenders();
175175
if ($adjustmentRenders) {
176-
$this->adjustmentsHtml = $this->getAdjustments($adjustmentRenders);
176+
$adjustmentHtml = $this->getAdjustments($adjustmentRenders);
177+
if (!$this->hasSkipAdjustments() ||
178+
($this->hasSkipAdjustments() && $this->getSkipAdjustments() == false)) {
179+
$this->adjustmentsHtml = $adjustmentHtml;
180+
}
177181
}
178182
$html = parent::_toHtml();
179183
return $html;
180184
}
181185

182-
/**
183-
* Collect correspondent Price Adjustment Renders
184-
*
185-
* @return AdjustmentRenderInterface[]
186-
*/
187-
protected function getApplicableAdjustmentRenders()
188-
{
189-
return (!$this->hasSkipAdjustments()) ? $this->getAdjustmentRenders() : [];
190-
}
191-
192186
/**
193187
* @return AdjustmentRenderInterface[]
194188
*/

lib/internal/Magento/Framework/Pricing/Test/Unit/Render/AmountTest.php

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,14 +138,57 @@ public function testGetDisplayCurrencySymbol()
138138

139139
/**
140140
* Test case for getAdjustmentRenders method through toHtml()
141+
*
142+
* @param bool $hasSkipAdjustments
143+
* @param bool|null $skipAdjustments
144+
* @param string $expected
145+
* @dataProvider dataProviderToHtmlSkipAdjustments
141146
*/
142-
public function testToHtmlSkipAdjustments()
147+
public function testToHtmlSkipAdjustments($hasSkipAdjustments, $skipAdjustments, $expected)
143148
{
144-
$this->model->setData('skip_adjustments', true);
145-
$this->rendererPool->expects($this->never())
146-
->method('getAdjustmentRenders');
149+
if ($hasSkipAdjustments) {
150+
$this->model->setData('skip_adjustments', $skipAdjustments);
151+
$expectedData = [
152+
'key1' => 'data1',
153+
'css_classes' => 'class1 class2',
154+
'module_name' => null,
155+
'adjustment_css_classes' => 'class1 class2 render1 render2',
156+
'skip_adjustments' => $skipAdjustments
157+
];
158+
} else {
159+
$expectedData = [
160+
'key1' => 'data1',
161+
'css_classes' => 'class1 class2',
162+
'module_name' => null,
163+
'adjustment_css_classes' => 'class1 class2 render1 render2',
164+
];
165+
}
166+
167+
$this->model->setData('key1', 'data1');
168+
$this->model->setData('css_classes', 'class1 class2');
169+
170+
$adjustmentRender1 = $this->getAdjustmentRenderMock($expectedData, 'html');
171+
$adjustmentRender2 = $this->getAdjustmentRenderMock($expectedData);
172+
$adjustmentRenders = ['render1' => $adjustmentRender1, 'render2' => $adjustmentRender2];
173+
$this->rendererPool->expects($this->once())
174+
->method('getAdjustmentRenders')
175+
->will($this->returnValue($adjustmentRenders));
147176

148177
$this->model->toHtml();
178+
$this->assertEquals($expected, $this->model->getAdjustmentsHtml());
179+
}
180+
181+
/**
182+
* @return array
183+
*/
184+
public function dataProviderToHtmlSkipAdjustments()
185+
{
186+
return [
187+
[false, null, 'html'],
188+
[false, null, 'html'],
189+
[true, false, 'html'],
190+
[true, true, ''],
191+
];
149192
}
150193

151194
/**

0 commit comments

Comments
 (0)