/**
  * @dataProvider providerReconstitute
  */
 public function testReconstitute($data)
 {
     /** @var AuthorizationCode $authorizationCode */
     $authorizationCode = AuthorizationCode::reconstitute($data);
     $this->assertSame($data['redirectUri'], $authorizationCode->getRedirectUri());
 }
 /**
  * @return AuthorizationCode
  */
 private function getValidAuthorizationCode($redirectUri = null, $owner = null, $client = null, $scopes = null)
 {
     $validDate = (new \DateTimeImmutable())->add(new DateInterval('PT1H'));
     $token = AuthorizationCode::reconstitute(['token' => 'azerty_auth', 'owner' => $owner, 'client' => $client, 'scopes' => $scopes ?? ['read'], 'expiresAt' => $validDate, 'redirectUri' => $redirectUri ?? '']);
     return $token;
 }