SetWeeeRendererInFormObserverTest.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Weee\Test\Unit\Observer;
  8. use Magento\Framework\Data\Form;
  9. use Magento\Framework\Event;
  10. use Magento\Framework\Event\Observer;
  11. use Magento\Framework\View\LayoutInterface;
  12. use Magento\Weee\Model\Tax;
  13. use Magento\Weee\Observer\SetWeeeRendererInFormObserver;
  14. use PHPUnit\Framework\TestCase;
  15. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  16. /**
  17. * Class AddPaymentWeeeItemTest
  18. */
  19. class SetWeeeRendererInFormObserverTest extends TestCase
  20. {
  21. /**
  22. * Testable object
  23. *
  24. * @var SetWeeeRendererInFormObserver
  25. */
  26. private $observer;
  27. /**
  28. * @var LayoutInterface|MockObject
  29. */
  30. private $layoutMock;
  31. /**
  32. * @var Tax|MockObject
  33. */
  34. private $taxModelMock;
  35. /**
  36. * Set Up
  37. */
  38. protected function setUp()
  39. {
  40. $this->layoutMock = $this->createMock(LayoutInterface::class);
  41. $this->taxModelMock = $this->createMock(Tax::class);
  42. $this->observer = new SetWeeeRendererInFormObserver(
  43. $this->layoutMock,
  44. $this->taxModelMock
  45. );
  46. }
  47. /**
  48. * Test assigning a custom renderer for product create/edit form weee attribute element
  49. *
  50. * @return void
  51. */
  52. public function testExecute(): void
  53. {
  54. $attributes = new \ArrayIterator(['element_code_1', 'element_code_2']);
  55. /** @var Event|MockObject $eventMock */
  56. $eventMock = $this->getMockBuilder(Event::class)
  57. ->disableOriginalConstructor()
  58. ->setMethods(['getForm'])
  59. ->getMock();
  60. /** @var Observer|MockObject $observerMock */
  61. $observerMock = $this->createMock(Observer::class);
  62. /** @var Form|MockObject $formMock */
  63. $formMock = $this->createMock(Form::class);
  64. $eventMock->expects($this->once())
  65. ->method('getForm')
  66. ->willReturn($formMock);
  67. $observerMock->expects($this->once())
  68. ->method('getEvent')
  69. ->willReturn($eventMock);
  70. $this->taxModelMock->expects($this->once())
  71. ->method('getWeeeAttributeCodes')
  72. ->willReturn($attributes);
  73. $formMock->expects($this->exactly($attributes->count()))
  74. ->method('getElement')
  75. ->willReturnSelf();
  76. $this->observer->execute($observerMock);
  77. }
  78. }