protected function getModel() { // Dependências $form = new Form(); $inputFilter = new InputFilter(); $formSearch = new Form(); $inputFilterSearch = new InputFilter(); $persistence = $this->getMock('Balance\\Model\\Persistence\\PersistenceInterface'); // Parâmetro $form->add(new Text('id')); $inputFilter->add(new Input('id')); // Parâmetro $form->add(new Text('foo')); $inputFilter->add(new Input('foo')); // Pesquisa: Palavras Chave $formSearch->add(new Text('keywords')); $inputFilterSearch->add(new Input('keywords')); // Configurações $form->setInputFilter($inputFilter); $formSearch->setInputFilter($inputFilterSearch); // Inicialização $model = new Model($persistence); // Formulários $model->setForm($form)->setFormSearch($formSearch); // Apresentação return $model; }
public function testCreateService() { // Inicializar Localizador de Serviço $serviceLocator = new ServiceManager(); $controllerLocator = (new ControllerManager())->setServiceLocator($serviceLocator); // Inicialização $form = new Form(); $formSearch = new Form(); $persistence = $this->getMock('Balance\\Model\\Persistence\\PersistenceInterface'); $model = new Model($persistence); // Configurações $model->setForm($form)->setFormSearch($formSearch); // Camada de Modelo $serviceLocator->setService('Balance\\Model\\Model', $model); // Configurar Elemento $serviceLocator->setService('Config', ['balance_manager' => ['factories' => ['BalanceTest\\Mvc\\Controller\\Controller' => ['factory' => 'Balance\\Mvc\\Controller\\AbstractControllerFactory', 'params' => ['model' => 'Balance\\Model\\Model', 'redirect_route_name' => 'controller']]]]]); // Fábrica de Componentes $factory = new AbstractControllerFactory(); $result = $factory->canCreateServiceWithName($controllerLocator, 'controller', 'BalanceTest\\Mvc\\Controller\\Controller'); // Verificações $this->assertTrue($result); // Construir Elemento $element = $factory->createServiceWithName($controllerLocator, 'controller', 'BalanceTest\\Mvc\\Controller\\Controller'); // Verificações $this->assertInstanceOf('BalanceTest\\Mvc\\Controller\\Controller', $element); $this->assertSame($model, $element->getModel()); $this->assertEquals('controller', $element->getRedirectRouteName()); }
/** * {@inheritdoc} */ public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) { // Captura de Configuração $config = $serviceLocator->get('Config')['balance_manager']['factories'][$requestedName]; // Inicialização $form = $serviceLocator->get('FormElementManager')->get($config['params']['form']); $inputFilter = $serviceLocator->get('InputFilterManager')->get($config['params']['input_filter']); $formSearch = $serviceLocator->get('FormElementManager')->get($config['params']['form_search']); $inputFilterSearch = $serviceLocator->get('InputFilterManager')->get($config['params']['input_filter_search']); $persistence = $serviceLocator->get($config['params']['persistence']); // Filtros de Dados $form->setInputFilter($inputFilter); $formSearch->setInputFilter($inputFilterSearch); // Camada de Modelo $model = new Model($persistence); // Gerenciador de Eventos $model->setEventManager($serviceLocator->get('EventManager')); // Formulários $model->setForm($form); $model->setFormSearch($formSearch); // Apresentação return $model; }