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);
 }
示例#3
0
 /**
  * @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;
 }