layoutMock = $this->createMock(LayoutInterface::class); $this->taxModelMock = $this->createMock(Tax::class); $this->observer = new SetWeeeRendererInFormObserver( $this->layoutMock, $this->taxModelMock ); } /** * Test assigning a custom renderer for product create/edit form weee attribute element * * @return void */ public function testExecute(): void { $attributes = new \ArrayIterator(['element_code_1', 'element_code_2']); /** @var Event|MockObject $eventMock */ $eventMock = $this->getMockBuilder(Event::class) ->disableOriginalConstructor() ->setMethods(['getForm']) ->getMock(); /** @var Observer|MockObject $observerMock */ $observerMock = $this->createMock(Observer::class); /** @var Form|MockObject $formMock */ $formMock = $this->createMock(Form::class); $eventMock->expects($this->once()) ->method('getForm') ->willReturn($formMock); $observerMock->expects($this->once()) ->method('getEvent') ->willReturn($eventMock); $this->taxModelMock->expects($this->once()) ->method('getWeeeAttributeCodes') ->willReturn($attributes); $formMock->expects($this->exactly($attributes->count())) ->method('getElement') ->willReturnSelf(); $this->observer->execute($observerMock); } }