public function setUp()
 {
     $config = (include './config/module.config.php');
     $config = $config['Zf2datatable'];
     $cacheOptions = new \Zend\Cache\Storage\Adapter\MemoryOptions();
     $config['cache']['adapter']['name'] = 'Memory';
     $config['cache']['adapter']['options'] = $cacheOptions->toArray();
     $this->config = $config;
     $translator = $this->getMock('Zend\\I18n\\Translator\\TranslatorInterface');
     $translator->expects($this->any())->method('translate');
     $mvcEvent = $this->getMock('Zend\\Mvc\\MvcEvent');
     $mvcEvent->expects($this->any())->method('getRequest')->will($this->returnValue($this->getMock('Zend\\Http\\PhpEnvironment\\Request')));
     $serviceLocator = $this->getMock('Zend\\ServiceManager\\ServiceManager');
     $eventManager = $this->getMock('Zend\\EventManager\\EventManager');
     $this->grid = new Datagrid();
     $this->grid->setTranslator($translator);
     $this->grid->setOptions($this->config);
     $this->grid->setMvcEvent($mvcEvent);
     $this->grid->setEventManager($eventManager);
     $this->grid->setServiceLocator($serviceLocator);
 }
 public function createService(ServiceLocatorInterface $sm)
 {
     $config = $sm->get('config');
     if (!isset($config['zf2datatable'])) {
         throw new InvalidArgumentException('Config key "zf2datatable" is missing');
     }
     /* @var $application \Zend\Mvc\Application */
     $application = $sm->get('application');
     $grid = new Datagrid();
     $grid->setOptions($config['zf2datatable']);
     $grid->setMvcEvent($application->getMvcEvent());
     $grid->setServiceLocator($sm);
     $grid->setEventManager(new Zf2EventManager(array('Zf2datatable\\Datagrid', get_class($grid))));
     if ($sm->has('translator') === true) {
         $grid->setTranslator($sm->get('translator'));
     }
     if ($sm->has('zf2datatable_logger') === true) {
         $grid->setLogger($sm->get('zf2datatable_logger'));
     }
     $grid->init();
     return $grid;
 }