/**
  * @test
  */
 public function wrongShortCodeFormatOutputsErrorMessage()
 {
     $shortCode = 'abc123';
     $this->urlShortener->shortCodeToUrl($shortCode)->willThrow(new InvalidShortCodeException())->shouldBeCalledTimes(1);
     $this->commandTester->execute(['command' => 'shortcode:parse', 'shortCode' => $shortCode]);
     $output = $this->commandTester->getDisplay();
     $this->assertEquals('Provided short code "' . $shortCode . '" has an invalid format.' . PHP_EOL, $output);
 }
Example #2
0
 /**
  * @test
  */
 public function previewExceptionReturnsNotFound()
 {
     $shortCode = 'abc123';
     $this->urlShortener->shortCodeToUrl($shortCode)->willThrow(PreviewGenerationException::class)->shouldBeCalledTimes(1);
     $resp = $this->action->__invoke(ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode), new Response(), function ($req, $resp) {
         return $resp;
     });
     $this->assertEquals(500, $resp->getStatusCode());
 }
Example #3
0
 /**
  * @test
  */
 public function unexpectedExceptionWillReturnError()
 {
     $shortCode = 'abc123';
     $this->urlShortener->shortCodeToUrl($shortCode)->willThrow(\Exception::class)->shouldBeCalledTimes(1);
     $request = ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode);
     $response = $this->action->__invoke($request, new Response());
     $this->assertEquals(500, $response->getStatusCode());
     $this->assertTrue(strpos($response->getBody()->getContents(), RestUtils::UNKNOWN_ERROR) > 0);
 }
Example #4
0
 /**
  * @test
  */
 public function aCorrectRequestReturnsTheQrCodeResponse()
 {
     $shortCode = 'abc123';
     $this->urlShortener->shortCodeToUrl($shortCode)->willReturn(new ShortUrl())->shouldBeCalledTimes(1);
     $resp = $this->action->__invoke(ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode), new Response(), function ($req, $resp) {
         return $resp;
     });
     $this->assertInstanceOf(QrCodeResponse::class, $resp);
     $this->assertEquals(200, $resp->getStatusCode());
 }
Example #5
0
 /**
  * @test
  */
 public function nextErrorMiddlewareIsInvokedIfAnExceptionIsThrown()
 {
     $shortCode = 'abc123';
     $this->urlShortener->shortCodeToUrl($shortCode)->willThrow(\Exception::class)->shouldBeCalledTimes(1);
     $request = ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode);
     $originalResponse = new Response();
     $test = $this;
     $this->action->__invoke($request, $originalResponse, function (ServerRequestInterface $req, ResponseInterface $resp, $error) use($test, $request) {
         $test->assertSame($request, $req);
         $test->assertEquals(404, $resp->getStatusCode());
         $test->assertEquals('Not Found', $error);
     });
 }