public function testViewRendererService()
{
$this->initServiceLocator();
// Create the service with default configuration
$mailService = $this->mailServiceFactory->__invoke($this->serviceLocator, 'acmailer.mailservice.default');
/** @var PhpRenderer $renderer */
$renderer = $mailService->getRenderer();
$this->assertInstanceOf('Zend\\View\\Renderer\\PhpRenderer', $renderer);
$this->assertInstanceOf('Zend\\View\\Resolver\\TemplatePathStack', $renderer->resolver());
// Set a template_map and unset the template_path_stack
$config = $this->serviceLocator->get('Config');
unset($config['view_manager']['template_path_stack']);
$config['view_manager']['template_map'] = [];
$this->serviceLocator->set('Config', $config);
$mailService = $this->mailServiceFactory->__invoke($this->serviceLocator, 'acmailer.mailservice.default');
/** @var PhpRenderer $renderer */
$renderer = $mailService->getRenderer();
$this->assertInstanceOf('Zend\\View\\Renderer\\PhpRenderer', $renderer);
$this->assertInstanceOf('Zend\\View\\Resolver\\TemplateMapResolver', $renderer->resolver());
// Set both a template_map and a template_path_stack
$this->initServiceLocator();
$config = $this->serviceLocator->get('Config');
$config['view_manager']['template_map'] = [];
$this->serviceLocator->set('Config', $config);
$mailService = $this->mailServiceFactory->__invoke($this->serviceLocator, 'acmailer.mailservice.default');
/** @var PhpRenderer $renderer */
$renderer = $mailService->getRenderer();
$this->assertInstanceOf('Zend\\View\\Renderer\\PhpRenderer', $renderer);
$this->assertInstanceOf('Zend\\View\\Resolver\\AggregateResolver', $renderer->resolver());
// Set a viewrenderer service and see if it is used
$renderer = new PhpRenderer();
$this->serviceLocator->set('mailviewrenderer', $renderer);
$mailService = $this->mailServiceFactory->__invoke($this->serviceLocator, 'acmailer.mailservice.default');
$this->assertSame($renderer, $mailService->getRenderer());
}