PropertyLockerTest.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Eav\Test\Unit\Block\Adminhtml\Attribute;
  7. use Magento\Eav\Block\Adminhtml\Attribute\PropertyLocker;
  8. class PropertyLockerTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /** @var PropertyLocker */
  11. protected $object;
  12. /** @var \Magento\Eav\Model\Entity\Attribute\AbstractAttribute|\PHPUnit_Framework_MockObject_MockObject */
  13. protected $attributeMock;
  14. /** @var \Magento\Framework\Data\Form|\PHPUnit_Framework_MockObject_MockObject */
  15. protected $formMock;
  16. /** @var \Magento\Eav\Model\Entity\Attribute\Config|\PHPUnit_Framework_MockObject_MockObject */
  17. protected $attributeConfigMock;
  18. protected function setUp()
  19. {
  20. $this->attributeMock = $this->getMockBuilder(\Magento\Eav\Model\Entity\Attribute\AbstractAttribute::class)
  21. ->setMethods(['getId'])
  22. ->disableOriginalConstructor()
  23. ->getMock();
  24. $registryMock = $this->getMockBuilder(\Magento\Framework\Registry::class)
  25. ->setMethods(['registry'])
  26. ->disableOriginalConstructor()
  27. ->getMock();
  28. $registryMock->expects($this->atLeastOnce())->method('registry')->willReturn($this->attributeMock);
  29. $this->attributeConfigMock = $this->getMockBuilder(\Magento\Eav\Model\Entity\Attribute\Config::class)
  30. ->setMethods(['getLockedFields'])
  31. ->disableOriginalConstructor()
  32. ->getMock();
  33. $this->formMock = $this->getMockBuilder(\Magento\Framework\Data\Form::class)
  34. ->setMethods(['getElement'])
  35. ->disableOriginalConstructor()
  36. ->getMock();
  37. $this->object = new PropertyLocker($registryMock, $this->attributeConfigMock);
  38. }
  39. /**
  40. * @covers \Magento\Eav\Block\Adminhtml\Attribute\PropertyLocker::lock
  41. */
  42. public function testLock()
  43. {
  44. $lockedFields = [
  45. 'is_searchable' => 'is_searchable',
  46. 'is_filterable' => 'is_filterable'
  47. ];
  48. $this->attributeMock->expects($this->once())->method('getId')->willReturn(1);
  49. $this->attributeConfigMock->expects($this->once())->method('getLockedFields')->willReturn($lockedFields);
  50. $elementMock = $this->getMockBuilder(\Magento\Framework\Data\Form\Element\AbstractElement::class)
  51. ->setMethods(['setDisabled', 'setReadonly'])
  52. ->disableOriginalConstructor()
  53. ->getMockForAbstractClass();
  54. $elementMock->expects($this->exactly(2))->method('setDisabled');
  55. $elementMock->expects($this->exactly(2))->method('setReadonly');
  56. $this->formMock->expects($this->exactly(2))->method('getElement')->willReturn($elementMock);
  57. $this->object->lock($this->formMock);
  58. }
  59. }