public function createService(ServiceLocatorInterface $serviceLocator) { /* @var $config \EscoMail\Options\ModuleOptions */ $config = $serviceLocator->get('EscoMail\\Options'); if ($config->getTransportClass()) { /* @var $transport TransportInterface */ $transport = $this->transportPluginManager->get($config->getTransportClass()); if ($transport instanceof FileTransport) { $transportOptions = $config->getTransportOptions(); if (isset($transportOptions['path'])) { if (!file_exists($transportOptions['path'])) { $oldUmask = umask(0); mkdir($transportOptions['path'], 0777, true); umask($oldUmask); } } } if ($config->getTransportOptions()) { $options = $this->getOptionsObject($transport, $config->getTransportOptions()); if (method_exists($transport, 'setOptions')) { $transport->setOptions($options); } elseif (method_exists($transport, 'setParameters')) { $transport->setParameters($options); } } return $transport; } else { throw new \RuntimeException('Transport Class config not set'); } }
public function testValidatePlugin() { $plugin = new PluginManager(); $transport = $this->getMock('Zend\\Mail\\Transport\\File'); $result = $plugin->validatePlugin($transport); $this->assertNull($result); $this->setExpectedException('Zend\\Mail\\Exception\\RuntimeException'); $plugin->validatePlugin(new \stdClass()); }