Skip to content

Commit 32f9293

Browse files
committed
Added Unit Test for Severity Block. Use FQCN. Added strict type hints
1 parent cae8810 commit 32f9293

File tree

2 files changed

+101
-8
lines changed

2 files changed

+101
-8
lines changed

app/code/Magento/AdminNotification/Block/Grid/Renderer/Severity.php

Lines changed: 14 additions & 8 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,9 +9,13 @@
79
*/
810
namespace Magento\AdminNotification\Block\Grid\Renderer;
911

12+
use Magento\AdminNotification\Model\Inbox;
13+
use Magento\Backend\Block\Context;
14+
use Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer;
15+
use Magento\Framework\DataObject;
1016
use Magento\Framework\Notification\MessageInterface;
1117

12-
class Severity extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
18+
class Severity extends AbstractRenderer
1319
{
1420
/**
1521
* @var \Magento\AdminNotification\Model\Inbox
@@ -21,11 +27,8 @@ class Severity extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Abstra
2127
* @param \Magento\AdminNotification\Model\Inbox $notice
2228
* @param array $data
2329
*/
24-
public function __construct(
25-
\Magento\Backend\Block\Context $context,
26-
\Magento\AdminNotification\Model\Inbox $notice,
27-
array $data = []
28-
) {
30+
public function __construct(Context $context, Inbox $notice, array $data = [])
31+
{
2932
parent::__construct($context, $data);
3033
$this->_notice = $notice;
3134
}
@@ -36,12 +39,14 @@ public function __construct(
3639
* @param \Magento\Framework\DataObject $row
3740
* @return string
3841
*/
39-
public function render(\Magento\Framework\DataObject $row)
42+
public function render(DataObject $row) : string
4043
{
4144
$class = '';
4245
$value = '';
4346

44-
switch ($row->getData($this->getColumn()->getIndex())) {
47+
$column = $this->getColumn();
48+
$index = $column->getData('index');
49+
switch ($row->getData($index)) {
4550
case MessageInterface::SEVERITY_CRITICAL:
4651
$class = 'critical';
4752
$value = $this->_notice->getSeverities(MessageInterface::SEVERITY_CRITICAL);
@@ -59,6 +64,7 @@ public function render(\Magento\Framework\DataObject $row)
5964
$value = $this->_notice->getSeverities(MessageInterface::SEVERITY_NOTICE);
6065
break;
6166
}
67+
6268
return '<span class="grid-severity-' . $class . '"><span>' . $value . '</span></span>';
6369
}
6470
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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\Severity;
15+
use Magento\AdminNotification\Model\Inbox;
16+
use Magento\Backend\Block\Context;
17+
use Magento\Backend\Block\Widget\Grid\Column;
18+
use Magento\Framework\DataObject;
19+
use Magento\Framework\Escaper;
20+
use PHPUnit\Framework\TestCase;
21+
22+
class SeverityTest extends TestCase
23+
{
24+
/**
25+
* System under Test
26+
*
27+
* @var Severity
28+
*/
29+
private $sut;
30+
31+
protected function setUp() : void
32+
{
33+
parent::setUp();
34+
35+
/** @var Inbox |\PHPUnit_Framework_MockObject_MockObject $inboxMock */
36+
$inboxMock = $this->getMockBuilder(Inbox::class)->disableOriginalConstructor()->getMock();
37+
38+
/** @var Context | \PHPUnit_Framework_MockObject_MockObject $contextMock */
39+
$contextMock = $this->getMockBuilder(Context::class)->disableOriginalConstructor()->getMock();
40+
41+
$this->sut = new Severity($contextMock, $inboxMock);
42+
}
43+
44+
public function test_should_render_severity() : void
45+
{
46+
/** @var Column | \PHPUnit_Framework_MockObject_MockObject $columnMock */
47+
$columnMock = $this->getMockBuilder(Column::class)->disableOriginalConstructor()->getMock();
48+
$columnMock->expects($this->exactly(5))->method('getData')->with($this->equalTo('index'))->willReturn('a magic index');
49+
$this->sut->setColumn($columnMock);
50+
$dataObject = new DataObject();
51+
52+
// Test critical severity
53+
$dataObject->setData('a magic index', 1);
54+
$actual = $this->sut->render($dataObject);
55+
$expected = '<span class="grid-severity-critical"><span></span></span>';
56+
57+
$this->assertEquals($actual, $expected);
58+
59+
// Test major severity
60+
$dataObject->setData('a magic index', 2);
61+
$actual = $this->sut->render($dataObject);
62+
$expected = '<span class="grid-severity-major"><span></span></span>';
63+
64+
$this->assertEquals($actual, $expected);
65+
66+
// Test minor severity
67+
$dataObject->setData('a magic index', 3);
68+
$actual = $this->sut->render($dataObject);
69+
$expected = '<span class="grid-severity-minor"><span></span></span>';
70+
71+
$this->assertEquals($actual, $expected);
72+
73+
// Test notice severity
74+
$dataObject->setData('a magic index', 4);
75+
$actual = $this->sut->render($dataObject);
76+
$expected = '<span class="grid-severity-notice"><span></span></span>';
77+
78+
$this->assertEquals($actual, $expected);
79+
80+
// Test default severity
81+
$dataObject->setData('a magic index', 5);
82+
$actual = $this->sut->render($dataObject);
83+
$expected = '<span class="grid-severity-"><span></span></span>';
84+
85+
$this->assertEquals($actual, $expected);
86+
}
87+
}

0 commit comments

Comments
 (0)