getMockBuilder(TestableAbstractExtension::class) ->setMethodsExcept([$methodName]) ->getMock(); } public function testApplyToCollection(): void { $extension = $this->getMockObjectFor('applyToCollection'); $queryNameGeneratorInterface = $this->getMockBuilder(QueryNameGeneratorInterface::class)->getMock(); $operation = $this->getMockBuilder(Operation::class)->getMock(); $extension ->expects($this->once()) ->method('apply') ->with($this->queryBuilder, 'App\Entity\Access\Access', $operation); $extension->applyToCollection( $this->queryBuilder, $queryNameGeneratorInterface, 'App\Entity\Access\Access', $operation ); } public function testApplyToItem(): void { $extension = $this->getMockObjectFor('applyToItem'); $queryNameGeneratorInterface = $this->getMockBuilder(QueryNameGeneratorInterface::class)->getMock(); $operation = $this->getMockBuilder(Operation::class)->getMock(); $extension ->expects($this->once()) ->method('apply') ->with($this->queryBuilder, 'App\Entity\Access\Access', $operation); $extension->applyToItem( $this->queryBuilder, $queryNameGeneratorInterface, 'App\Entity\Access\Access', [], $operation ); } public function testApply(): void { $extension = $this->getMockObjectFor('apply'); $operation = $this->getMockBuilder(Operation::class)->getMock(); $extension ->expects($this->once()) ->method('supports') ->with('App\Entity\Access\Access', $operation) ->willReturn(true); $extension ->expects(self::once()) ->method('addWhere') ->with($this->queryBuilder, 'App\Entity\Access\Access', $operation); $extension->apply($this->queryBuilder, 'App\Entity\Access\Access', $operation); } public function testApplyNoSupport(): void { $extension = $this->getMockObjectFor('apply'); $operation = $this->getMockBuilder(Operation::class)->getMock(); $extension ->expects($this->once()) ->method('supports') ->with('App\Entity\Access\Access', $operation) ->willReturn(false); $extension ->expects(self::never()) ->method('addWhere'); $extension->apply($this->queryBuilder, 'App\Entity\Access\Access', $operation); } }