apiKeyService = $this->prophesize(ApiKeyService::class); $command = new GenerateKeyCommand($this->apiKeyService->reveal()); $app = new Application(); $app->add($command); $this->commandTester = new CommandTester($command); } /** @test */ public function noExpirationDateIsDefinedIfNotProvided() { $create = $this->apiKeyService->create(null)->willReturn(new ApiKey()); $this->commandTester->execute([ 'command' => 'api-key:generate', ]); $output = $this->commandTester->getDisplay(); $this->assertStringContainsString('Generated API key: ', $output); $create->shouldHaveBeenCalledOnce(); } /** @test */ public function expirationDateIsDefinedIfProvided() { $this->apiKeyService->create(Argument::type(Chronos::class))->shouldBeCalledOnce() ->willReturn(new ApiKey()); $this->commandTester->execute([ 'command' => 'api-key:generate', '--expirationDate' => '2016-01-01', ]); } }