public function testInvokesSignatureVerifier()
 {
     $expected = new GnupgVerificationResult(['fingerprint' => 'foobar', 'summary' => 'baz']);
     $this->verifier->verify('foo', 'bar')->willReturn($expected);
     $service = new SignatureService($this->verifier->reveal());
     $this->assertEquals($expected, $service->verify('foo', 'bar'));
 }
 public function testReturnsExpectedVerificationResult()
 {
     $verificationData = ['summary' => 128, 'fingerprint' => 'foo'];
     $this->gnupg->verify('foo', 'bar')->willReturn([$verificationData]);
     $verifier = new GnupgSignatureVerifier($this->gnupg->reveal(), $this->keyservice->reveal());
     $actual = $verifier->verify('foo', 'bar');
     $expected = new GnupgVerificationResult($verificationData);
     $this->assertEquals($expected, $actual);
 }
 /**
  * @expectedException \PharIo\Phive\VerificationFailedException
  */
 public function testThrowsExceptionIfChecksumVerificationFails()
 {
     $url = new Url('https://example.com/foo.phar');
     $expectedHash = new Sha1Hash(sha1('foo'));
     $release = new Release(new Version('1.0.0'), $url, $expectedHash);
     $signatureUrl = new Url('https://example.com/foo.phar.asc');
     $pharFile = new File(new Filename('foo.phar'), 'foo');
     $this->fileDownloader->download($url)->willReturn($pharFile);
     $this->fileDownloader->download($signatureUrl)->willReturn(new File(new Filename('foo.phar.asc'), 'bar'));
     $this->signatureService->verify('foo', 'bar')->willReturn(true);
     $this->checksumService->verify($expectedHash, $pharFile)->shouldBeCalled()->willReturn(false);
     $downloader = new PharDownloader($this->fileDownloader->reveal(), $this->signatureService->reveal(), $this->checksumService->reveal());
     $downloader->download($release);
 }
 /**
  * @test
  */
 public function provideCorrectTokenUpdatesExpirationAndFallbacksToNextMiddleware()
 {
     $authToken = 'ABC-abc';
     $request = ServerRequestFactory::fromGlobals()->withAttribute(RouteResult::class, RouteResult::fromRouteMatch('bar', 'foo', []))->withHeader(CheckAuthenticationMiddleware::AUTHORIZATION_HEADER, 'bearer ' . $authToken);
     $this->jwtService->verify($authToken)->willReturn(true)->shouldBeCalledTimes(1);
     $this->jwtService->refresh($authToken)->willReturn($authToken)->shouldBeCalledTimes(1);
     $isCalled = false;
     $this->assertFalse($isCalled);
     $this->middleware->__invoke($request, new Response(), function ($req, $resp) use(&$isCalled) {
         $isCalled = true;
         return $resp;
     });
     $this->assertTrue($isCalled);
 }