public function testCannotValidateWithAvailableObjectInRepository() { $repository = $this->getMock('Doctrine\\Common\\Persistence\\ObjectRepository'); $repository->expects($this->once())->method('findOneBy')->will($this->returnValue(new stdClass())); $validator = new NoObjectExists(array('object_repository' => $repository, 'fields' => 'matchKey')); $this->assertFalse($validator->isValid('matchValue')); }
public function testErrorMessageIsStringInsteadArray() { $repository = $this->getMock('Doctrine\\Common\\Persistence\\ObjectRepository'); $repository->expects($this->once())->method('findOneBy')->will($this->returnValue(new stdClass())); $validator = new NoObjectExists(array('object_repository' => $repository, 'fields' => 'matchKey')); $this->assertFalse($validator->isValid('matchValue')); $messageTemplates = $validator->getMessageTemplates(); $expectedMessage = str_replace('%value%', 'matchValue', $messageTemplates[NoObjectExists::ERROR_OBJECT_FOUND]); $messages = $validator->getMessages(); $receivedMessage = $messages[NoObjectExists::ERROR_OBJECT_FOUND]; $this->assertTrue($expectedMessage == $receivedMessage); }
/** * @return ViewModel */ public function createAction() { $entityManager = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $repository = $entityManager->getRepository('Categories\\Entity\\Categories'); /** @var \Categories\Service\Categories $categoriesService */ $categoriesService = $this->getServiceLocator()->get('Categories\\Service\\Categories'); $form = $this->getCreateForm(); $parentId = !$this->params()->fromRoute('parentId') ? null : $this->params()->fromRoute('parentId'); $urlHelper = $this->getServiceLocator()->get('viewhelpermanager')->get('url'); $form->setAttribute('action', $urlHelper('categories/create', ['parentId' => $parentId])); if ($this->getRequest()->isPost()) { $form->setInputFilter(new Filter\CreateInputFilter($this->getServiceLocator())); $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { $aliasValid = new Validator\NoObjectExists(['object_repository' => $repository, 'fields' => ['alias', 'parentId']]); if ($aliasValid->isValid(['alias' => $form->get('alias')->getValue(), 'parentId' => $parentId])) { $category = $this->getEntity(); $category->setParentId(!$parentId ? null : $repository->find($parentId)); $category->setOrder($this->getMaxOrder($parentId)); $hydrator = new DoctrineHydrator($entityManager); $hydrator->hydrate($form->getData(), $category); $entityManager->persist($category); $entityManager->flush(); //Add image from session if ($categoriesService->ifImagesExist()) { $imageService = $this->getServiceLocator()->get('Media\\Service\\File'); foreach ($categoriesService->getSession()->ids as $imageId) { $imageService->associateFileWithObject($this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getRepository('Media\\Entity\\File')->find($imageId), $category); } $categoriesService->clearImages(); } $this->flashMessenger()->addSuccessMessage('Category has been successfully created!'); if (!$this->getRequest()->isXmlHttpRequest()) { return $this->redirect()->toRoute('categories/default', array('controller' => 'management', 'action' => 'index')); } else { return; } } else { $form->get('alias')->setMessages(array('errorMessageKey' => 'Alias must be unique in it\'s category!')); } } } else { $categoriesService->clearImages(); } $imageService = new File($this->getServiceLocator()); $viewModel = new ViewModel(); $viewModel->setVariables(['form' => $form, 'fileUpload' => ['imageService' => $imageService, 'module' => 'image-categories', 'type' => \Media\Entity\File::IMAGE_FILETYPE, 'id' => null]]); $viewModel->setTerminal($this->getRequest()->isXmlHttpRequest()); return $viewModel; }