/**
* Tests the cache method
*
* @return void
*/
public function testCache()
{
$response = new Response();
$since = time();
$time = new \DateTime('+1 day', new \DateTimeZone('UTC'));
$response->expires('+1 day');
$expected = ['Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => $time->format('D, j M Y H:i:s') . ' GMT', 'Cache-Control' => 'public, max-age=' . ($time->format('U') - time())];
$response->cache($since);
$this->assertEquals($expected, $response->header());
$response = new Response();
$since = time();
$time = '+5 day';
$expected = ['Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => gmdate("D, j M Y H:i:s", strtotime($time)) . " GMT", 'Cache-Control' => 'public, max-age=' . (strtotime($time) - time())];
$response->cache($since, $time);
$this->assertEquals($expected, $response->header());
$response = new Response();
$since = time();
$time = time();
$expected = ['Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => gmdate("D, j M Y H:i:s", $time) . " GMT", 'Cache-Control' => 'public, max-age=0'];
$response->cache($since, $time);
$this->assertEquals($expected, $response->header());
}