/**
  * @dataProvider storageNonScalarDataProvider
  */
 public function testGetWillReturnScalarCastDefaultValueOnNonExistingKey($nonScalar, $expectedScalar)
 {
     self::assertSame($expectedScalar, DefaultSessionData::newEmptySession()->get('key', $nonScalar));
 }
 /**
  * @dataProvider validMiddlewaresProvider
  */
 public function testWillNotRefreshSignedTokensWithoutIssuedAt(SessionMiddleware $middleware)
 {
     $unsignedToken = (new ServerRequest())->withCookieParams([SessionMiddleware::DEFAULT_COOKIE => (string) (new Builder())->setExpiration((new \DateTime('+1 day'))->getTimestamp())->set(SessionMiddleware::SESSION_CLAIM, DefaultSessionData::newEmptySession())->sign($this->getSigner($middleware), $this->getSignatureKey($middleware))->getToken()]);
     $this->ensureSameResponse($middleware, $unsignedToken, $this->emptyValidationMiddleware());
 }
 /**
  * @param Token|null $token
  *
  * @return SessionInterface
  */
 public function extractSessionContainer(Token $token = null) : SessionInterface
 {
     try {
         if (null === $token || !$token->verify($this->signer, $this->verificationKey)) {
             return DefaultSessionData::newEmptySession();
         }
         return DefaultSessionData::fromDecodedTokenData((object) $token->getClaim(self::SESSION_CLAIM, new \stdClass()));
     } catch (\BadMethodCallException $invalidToken) {
         return DefaultSessionData::newEmptySession();
     }
 }