Skip to content

Commit cae8810

Browse files
committed
Added Unit Test for Notice Block. Added strict type hint. Removed
Code-Smell
1 parent 06d06f1 commit cae8810

File tree

2 files changed

+65
-4
lines changed

2 files changed

+65
-4
lines changed
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
declare(strict_types=1);
3+
24
/**
35
* Adminhtml AdminNotification Severity Renderer
46
*
@@ -7,19 +9,22 @@
79
*/
810
namespace Magento\AdminNotification\Block\Grid\Renderer;
911

10-
class Notice extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
12+
use Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer;
13+
use Magento\Framework\DataObject;
14+
15+
class Notice extends AbstractRenderer
1116
{
1217
/**
1318
* Renders grid column
1419
*
1520
* @param \Magento\Framework\DataObject $row
1621
* @return string
1722
*/
18-
public function render(\Magento\Framework\DataObject $row)
23+
public function render(DataObject $row) : string
1924
{
2025
return '<span class="grid-row-title">' .
21-
$this->escapeHtml($row->getTitle()) .
26+
$this->escapeHtml($row->getData('title')) .
2227
'</span>' .
23-
($row->getDescription() ? '<br />' . $this->escapeHtml($row->getDescription()) : '');
28+
($row->getData('description') ? '<br />' . $this->escapeHtml($row->getData('description')) : '');
2429
}
2530
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
/**
5+
* Copyright © Magento, Inc. All rights reserved.
6+
* See COPYING.txt for license details.
7+
*/
8+
9+
/**
10+
* Test class for \Magento\AdminNotification\Block\Grid\Renderer\Actions
11+
*/
12+
namespace Magento\AdminNotification\Test\Unit\Block\Grid\Renderer;
13+
14+
use Magento\AdminNotification\Block\Grid\Renderer\Notice;
15+
use Magento\Framework\DataObject;
16+
use Magento\Framework\Escaper;
17+
use Magento\Backend\Block\Context;
18+
use PHPUnit\Framework\TestCase;
19+
20+
class NoticeTest extends TestCase
21+
{
22+
/**
23+
* System under Test
24+
*
25+
* @var Notice
26+
*/
27+
private $sut;
28+
29+
protected function setUp() : void
30+
{
31+
parent::setUp();
32+
33+
/** @var Escaper | \PHPUnit_Framework_MockObject_MockObject $escaperMock */
34+
$escaperMock = $this->getMockBuilder(Escaper::class)->disableOriginalConstructor()->getMock();
35+
$escaperMock->expects($this->exactly(2))->method('escapeHtml')->willReturn('<div>Some random html</div>');
36+
37+
/** @var Context | \PHPUnit_Framework_MockObject_MockObject $contextMock */
38+
$contextMock = $this->getMockBuilder(Context::class)->disableOriginalConstructor()->getMock();
39+
$contextMock->expects($this->once())->method('getEscaper')->willReturn($escaperMock);
40+
41+
$this->sut = new Notice($contextMock);
42+
43+
}
44+
45+
public function test_should_render_notice() : void
46+
{
47+
$dataObject = new DataObject();
48+
$dataObject->setData('title', 'A great Title');
49+
$dataObject->setData('description', 'Handy description right here');
50+
51+
$actual = $this->sut->render($dataObject);
52+
$expected = '<span class="grid-row-title"><div>Some random html</div></span><br /><div>Some random html</div>';
53+
54+
$this->assertEquals($actual, $expected);
55+
}
56+
}

0 commit comments

Comments
 (0)