backgroundServiceMock = $this->createMock(BackgroundService::class); $this->translatorMock = $this->createMock(TranslatorInterface::class); $this->leadFieldRepositoryMock = $this->createMock(LeadFieldRepository::class); $this->pathsHelperMock = $this->createMock(PathsHelper::class); $this->coreParametersHelper = $this->createMock(CoreParametersHelper::class); } /** * @dataProvider completeRunMethodProvider */ public function testCompleteRunMethodIsCalled(bool $checkRunStatusResult, int $completeRunExpected): void { $command = $this->getMockBuilder(CreateCustomFieldCommand::class) ->setConstructorArgs([ $this->backgroundServiceMock, $this->translatorMock, $this->leadFieldRepositoryMock, $this->pathsHelperMock, $this->coreParametersHelper, ]) ->onlyMethods(['completeRun', 'checkRunStatus']) ->getMock(); $command->expects($this->once())->method('checkRunStatus')->willReturn($checkRunStatusResult); $command->expects($this->exactly($completeRunExpected))->method('completeRun'); $input = new ArrayInput([ '--id' => '123', ]); $output = new BufferedOutput(); $command->run($input, $output); } /** * @return array> */ public static function completeRunMethodProvider(): array { return [ [true, 1], // `completeRun` should be called once [false, 0], // `completeRun` should never be called ]; } }