public function testUseModifiedSince()
 {
     $value = $this->object->getUseModifiedSince();
     $this->assertTrue($value);
     $expected = false;
     $this->object->setUseModifiedSince($expected);
     $value = $this->object->getUseModifiedSince();
     $this->assertFalse($value);
 }
 public function onRoute(MvcEvent $e)
 {
     /** @var $request Request */
     $request = $e->getRequest();
     /** @var $response Response */
     $response = $e->getResponse();
     if (!$response instanceof Response) {
         return;
     }
     if (!$this->config->getUseModifiedSince()) {
         return;
     }
     /** @var $modifiedSince IfModifiedSince */
     $modifiedSince = $request->getHeader('If-Modified-Since');
     if (!$modifiedSince instanceof IfModifiedSince) {
         return;
     }
     $headers = $response->getHeaders();
     /** @var $lastModified LastModified  */
     $lastModified = $headers->get('Last-Modified');
     if (!$lastModified instanceof LastModified) {
         $lastModified = new LastModified();
         $headers->addHeader($lastModified);
     }
     // check if expire
     $age = $lastModified->date()->getTimestamp() - $modifiedSince->date()->getTimestamp();
     $maxAge = $this->config->getMaxAge();
     if ($maxAge < 1) {
         return;
     }
     if ($age < $maxAge) {
         // Nop, you have quire fresh information
         $lastModified->setDate($modifiedSince->date());
         $response->setStatusCode($response::STATUS_CODE_304);
         $response->setContent(null);
         return $response;
     }
 }