public function testDateTimeForRetry()
 {
     $responseDateTime = new \DateTime('2014-09-09 00:00:00');
     $response = new GuzzleResponse(202, ['Retry-After' => '15']);
     $exception = new BoxException\NotAvailableException('', $response, $responseDateTime);
     $this->assertEquals((new \DateTime('2014-09-09 00:00:15'))->getTimestamp(), $exception->getDateTimeForRetry()->getTimestamp());
 }
 /**
  * @param ResponseInterface $response
  * @return Entity\Document
  * @throws \BoxView\Exception\NotAvailableException
  */
 public function getSession(ResponseInterface $response)
 {
     $statusCode = $response->getStatusCode();
     if ($statusCode != '201' && $statusCode != '202') {
         $this->handleUnexpectedResponse($response);
     }
     if ($statusCode == '202') {
         throw NotAvailableException::create($response, new \DateTime());
     }
     return new Entity\Session(\GuzzleHttp\json_decode($response->getBody(), true));
 }