123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Swatches\Test\Unit\Observer;
- /**
- * Observer test
- */
- class AddFieldsToAttributeObserverTest extends \PHPUnit\Framework\TestCase
- {
- /** @var \Magento\Framework\Module\Manager|\PHPUnit_Framework_MockObject_MockObject */
- protected $moduleManagerMock;
- /** @var \Magento\Config\Model\Config\Source\Yesno|\PHPUnit_Framework_MockObject_MockObject */
- protected $yesNoMock;
- /** @var \Magento\Framework\Data\Form|\PHPUnit_Framework_MockObject_MockObject */
- protected $formMock;
- /** @var \Magento\Framework\Event\Observer|\PHPUnit_Framework_MockObject_MockObject */
- protected $eventObserverMock;
- /** @var \Magento\Swatches\Observer\AddFieldsToAttributeObserver|\PHPUnit_Framework_MockObject_MockObject */
- protected $observerMock;
- protected function setUp()
- {
- $this->moduleManagerMock = $this->createMock(\Magento\Framework\Module\Manager::class);
- $this->yesNoMock = $this->createMock(\Magento\Config\Model\Config\Source\Yesno::class);
- $this->eventObserverMock = $this->createPartialMock(
- \Magento\Framework\Event\Observer::class,
- ['getForm', 'getEvent', 'getAttribute']
- );
- $this->formMock = $this->createPartialMock(\Magento\Framework\Data\Form::class, ['getElement']);
- $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->observerMock = $objectManager->getObject(
- \Magento\Swatches\Observer\AddFieldsToAttributeObserver::class,
- [
- 'moduleManager' => $this->moduleManagerMock,
- 'yesNo' => $this->yesNoMock,
- ]
- );
- }
- /**
- * @dataProvider dataAddFields
- */
- public function testAddFields($expected)
- {
- $this->moduleManagerMock
- ->expects($this->once())
- ->method('isOutputEnabled')
- ->willReturn($expected['isOutputEnabled']);
- $this->eventObserverMock
- ->expects($this->exactly($expected['methods_count']))
- ->method('getForm')
- ->willReturn($this->formMock);
- $element = $this->createMock(\Magento\Framework\Data\Form\Element\AbstractElement::class);
- $this->formMock
- ->expects($this->exactly($expected['methods_count']))
- ->method('getElement')
- ->with('base_fieldset')
- ->willReturn($element);
- $element->expects($this->exactly($expected['addField_count']))->method('addField');
- $this->yesNoMock->expects($this->exactly($expected['yesno_count']))->method('toOptionArray');
- $this->observerMock->execute($this->eventObserverMock);
- }
- /**
- * @return array
- */
- public function dataAddFields()
- {
- return [
- [
- [
- 'isOutputEnabled' => true,
- 'methods_count' => 1,
- 'addField_count' => 2,
- 'yesno_count' => 1,
- ],
- ],
- [
- [
- 'isOutputEnabled' => false,
- 'methods_count' => 0,
- 'addField_count' => 0,
- 'yesno_count' => 0,
- ],
- ],
- ];
- }
- }
|