/**
  * Test if authentication with good token records usage.
  */
 public function testAuthenticationRecordsTokenUsage()
 {
     $test_token = '123';
     $user_repository = new UserRepository([new AuthenticatedUser(1, '*****@*****.**', 'Ilija Studen', '123')]);
     $token_repository = new TokenRepository([$test_token => new Token($test_token, '*****@*****.**')]);
     $this->assertSame(0, $token_repository->getUsageById($test_token));
     $results = (new TokenBearerAdapter($user_repository, $token_repository))->initialize($this->request->withHeader('Authorization', "Bearer {$test_token}"));
     $this->assertInstanceOf(TransportInterface::class, $results);
     $this->assertInstanceOf(AuthenticatedUser::class, $results->getAuthenticatedUser());
     $this->assertInstanceOf(Token::class, $results->getAuthenticatedWith());
     $this->assertSame(1, $token_repository->getUsageById($test_token));
 }
 /**
  * Test if we can terminate a token.
  */
 public function testTerminateToken()
 {
     $test_token = '123';
     $token = new Token($test_token, 123);
     $user_repository = new UserRepository([new AuthenticatedUser(1, '*****@*****.**', 'Ilija Studen', '123')]);
     $token_repository = new TokenRepository([$test_token => new Token($test_token, '*****@*****.**')]);
     $token_bearer_adapter = new TokenBearerAdapter($user_repository, $token_repository);
     $this->assertInstanceOf(Token::class, $token_repository->getById($test_token));
     $termination_transport = $token_bearer_adapter->terminate($token);
     $this->assertInstanceOf(TransportInterface::class, $termination_transport);
     $this->assertNull($token_repository->getById($test_token));
 }