diff --git a/app/code/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabel.php b/app/code/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabel.php index 34f2b7d53d9be..664278debd655 100644 --- a/app/code/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabel.php +++ b/app/code/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabel.php @@ -3,42 +3,47 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ +declare(strict_types=1); + namespace Magento\Analytics\Block\Adminhtml\System\Config; -use Magento\Framework\App\ObjectManager; +use Magento\Backend\Block\Template\Context; +use Magento\Config\Block\System\Config\Form\Field; +use Magento\Framework\Data\Form\Element\AbstractElement; +use Magento\Framework\Locale\ResolverInterface; /** * Provides label with default Time Zone */ -class CollectionTimeLabel extends \Magento\Config\Block\System\Config\Form\Field +class CollectionTimeLabel extends Field { /** - * @var \Magento\Framework\Locale\ResolverInterface + * @var ResolverInterface */ private $localeResolver; /** - * @param \Magento\Backend\Block\Template\Context $context + * @param Context $context + * @param ResolverInterface $localeResolver * @param array $data - * @param \Magento\Framework\Locale\ResolverInterface|null $localeResolver */ public function __construct( - \Magento\Backend\Block\Template\Context $context, - array $data = [], - \Magento\Framework\Locale\ResolverInterface $localeResolver = null + Context $context, + ResolverInterface $localeResolver, + array $data = [] ) { - $this->localeResolver = $localeResolver ?: - ObjectManager::getInstance()->get(\Magento\Framework\Locale\ResolverInterface::class); parent::__construct($context, $data); + $this->localeResolver = $localeResolver; } /** * Add current time zone to comment, properly translated according to locale * - * @param \Magento\Framework\Data\Form\Element\AbstractElement $element + * @param AbstractElement $element + * * @return string */ - public function render(\Magento\Framework\Data\Form\Element\AbstractElement $element) + public function render(AbstractElement $element): string { $timeZoneCode = $this->_localeDate->getConfigTimezone(); $locale = $this->localeResolver->getLocale(); @@ -46,7 +51,7 @@ public function render(\Magento\Framework\Data\Form\Element\AbstractElement $ele ->getDisplayName(false, \IntlTimeZone::DISPLAY_LONG, $locale); $element->setData( 'comment', - sprintf("%s (%s)", $getLongTimeZoneName, $timeZoneCode) + sprintf('%s (%s)', $getLongTimeZoneName, $timeZoneCode) ); return parent::render($element); } diff --git a/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php b/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php index 08ee3c356937a..3a98fd6acbf4d 100644 --- a/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php +++ b/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php @@ -3,17 +3,25 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ +declare(strict_types=1); + namespace Magento\Analytics\Test\Unit\Block\Adminhtml\System\Config; use Magento\Analytics\Block\Adminhtml\System\Config\CollectionTimeLabel; use Magento\Backend\Block\Template\Context; use Magento\Framework\Data\Form; use Magento\Framework\Data\Form\Element\AbstractElement; +use Magento\Framework\Escaper; use Magento\Framework\Locale\ResolverInterface; use Magento\Framework\Stdlib\DateTime\TimezoneInterface; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; -class CollectionTimeLabelTest extends \PHPUnit\Framework\TestCase +/** + * Test class for \Magento\Analytics\Block\Adminhtml\System\Config\CollectionTimeLabel + */ +class CollectionTimeLabelTest extends TestCase { /** * @var CollectionTimeLabel @@ -21,25 +29,33 @@ class CollectionTimeLabelTest extends \PHPUnit\Framework\TestCase private $collectionTimeLabel; /** - * @var Context|\PHPUnit_Framework_MockObject_MockObject + * @var Context|MockObject */ private $contextMock; /** - * @var TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject + * @var ResolverInterface|MockObject + */ + private $localeResolverMock; + + /** + * @var Form|MockObject + */ + private $formMock; + + /** + * @var TimezoneInterface|MockObject */ private $timeZoneMock; /** - * @var AbstractElement|\PHPUnit_Framework_MockObject_MockObject + * @var AbstractElement|MockObject */ private $abstractElementMock; /** - * @var ResolverInterface|\PHPUnit_Framework_MockObject_MockObject + * @inheritDoc */ - private $localeResolver; - protected function setUp() { $this->abstractElementMock = $this->getMockBuilder(AbstractElement::class) @@ -48,7 +64,7 @@ protected function setUp() ->getMock(); $objectManager = new ObjectManager($this); - $escaper = $objectManager->getObject(\Magento\Framework\Escaper::class); + $escaper = $objectManager->getObject(Escaper::class); $reflection = new \ReflectionClass($this->abstractElementMock); $reflection_property = $reflection->getProperty('_escaper'); $reflection_property->setAccessible(true); @@ -64,35 +80,35 @@ protected function setUp() $this->timeZoneMock = $this->getMockBuilder(TimezoneInterface::class) ->disableOriginalConstructor() ->getMock(); - $this->contextMock->expects($this->any()) - ->method('getLocaleDate') + $this->contextMock->method('getLocaleDate') ->willReturn($this->timeZoneMock); - $this->localeResolver = $this->getMockBuilder(ResolverInterface::class) + $this->localeResolverMock = $this->getMockBuilder(ResolverInterface::class) ->disableOriginalConstructor() ->setMethods(['getLocale']) ->getMockForAbstractClass(); - $objectManager = new ObjectManager($this); $this->collectionTimeLabel = $objectManager->getObject( CollectionTimeLabel::class, [ 'context' => $this->contextMock, - 'localeResolver' => $this->localeResolver + 'localeResolver' => $this->localeResolverMock ] ); } + /** + * Test for \Magento\Analytics\Block\Adminhtml\System\Config\CollectionTimeLabel::render() + */ public function testRender() { - $timeZone = "America/New_York"; + $timeZone = 'America/New_York'; $this->abstractElementMock->setForm($this->formMock); $this->timeZoneMock->expects($this->once()) ->method('getConfigTimezone') ->willReturn($timeZone); - $this->abstractElementMock->expects($this->any()) - ->method('getComment') + $this->abstractElementMock->method('getComment') ->willReturn('Eastern Standard Time (America/New_York)'); - $this->localeResolver->expects($this->once()) + $this->localeResolverMock->expects($this->once()) ->method('getLocale') ->willReturn('en_US'); $this->assertRegExp(