prophesize(Process::class); $processMock->isSuccessful()->willReturn(true); $processHelper = $this->prophesize(ProcessHelper::class); $processHelper->getName()->willReturn('process'); $processHelper->setHelperSet(Argument::any())->willReturn(null); $processHelper->run(Argument::cetera())->willReturn($processMock->reveal()); $this->filesystem = $this->prophesize(Filesystem::class); $this->filesystem->exists(Argument::cetera())->willReturn(false); $this->configWriter = $this->prophesize(WriterInterface::class); $configCustomizer = $this->prophesize(ConfigCustomizerPluginInterface::class); $configCustomizers = $this->prophesize(ConfigCustomizerPluginManagerInterface::class); $configCustomizers->get(Argument::cetera())->willReturn($configCustomizer->reveal()); $app = new Application(); $helperSet = $app->getHelperSet(); $helperSet->set($processHelper->reveal()); $app->setHelperSet($helperSet); $command = new InstallCommand( $this->configWriter->reveal(), $this->filesystem->reveal(), $configCustomizers->reveal() ); $app->add($command); $questionHelper = $command->getHelper('question'); // $questionHelper->setInputStream($this->createInputStream()); $this->commandTester = new CommandTester($command); } // protected function createInputStream() // { // $stream = fopen('php://memory', 'rb+', false); // fwrite($stream, <<configWriter->toFile(Argument::any(), Argument::type('array'), false)->shouldBeCalledTimes(1); $this->commandTester->execute([ 'command' => 'shlink:install', ]); } }