/**
  * Factory for producing an HttpCacheListener.
  *
  * Duck-types on the $container type to allow usage with
  * zend-servicemanager versions 2.5+ and 3.0+.
  *
  * @param  ContainerInterface $container
  * @return HttpCacheListener
  */
 public function __invoke(ContainerInterface $container)
 {
     $config = [];
     if ($container->has('config')) {
         $config = $container->get('config');
         if (isset($config['zf-http-cache'])) {
             $config = $config['zf-http-cache'];
         }
     }
     $httpCacheListener = new HttpCacheListener($this->getETagGenerator($config, $container));
     $httpCacheListener->setConfig($config);
     return $httpCacheListener;
 }
 /**
  * @covers       \ZF\HttpCache\HttpCacheListener::setvary
  * @dataProvider setNotModifiedDataProvider
  *
  * @param array $requestHeaders
  * @param array $responseHeaders
  * @param array $exStatusCode
  * @internal param array $cacheConfig
  */
 public function testSetNotModified(array $requestHeaders, array $responseHeaders, $exStatusCode)
 {
     $request = new HttpRequest();
     $request->getHeaders()->addHeaders($requestHeaders);
     $response = new HttpResponse();
     $response->getHeaders()->addHeaders($responseHeaders);
     $this->instance->setNotModified($request, $response);
     $this->assertSame($exStatusCode, $response->getStatusCode());
 }