/** * @param FormInterface $form * @param Product $entity * @param array|callable $saveAndStayRoute * @param array|callable $saveAndCloseRoute * @param string $saveMessage * @param null $resultCallback * @return array|RedirectResponse */ protected function processSave(FormInterface $form, $entity, $saveAndStayRoute, $saveAndCloseRoute, $saveMessage, $resultCallback = null) { $result = parent::processSave($form, $entity, $saveAndStayRoute, $saveAndCloseRoute, $saveMessage, $resultCallback); if ($result instanceof RedirectResponse && $this->isSaveAndDuplicateAction()) { $saveMessage = $this->translator->trans('orob2b.product.controller.product.saved_and_duplicated.message'); $this->session->getFlashBag()->set('success', $saveMessage); return new RedirectResponse($this->urlGenerator->generate('orob2b_product_duplicate', ['id' => $entity->getId()])); } return $result; }
public function testHandleSaveNoWid() { $message = 'Saved'; $form = $this->getMockBuilder('Symfony\\Component\\Form\\Form')->disableOriginalConstructor()->getMock(); $entity = new \stdClass(); $handler = $this->getMockBuilder('Oro\\Bundle\\FormBundle\\Tests\\Unit\\Form\\Stub\\HandlerStub')->getMock(); $handler->expects($this->once())->method('process')->with($entity)->will($this->returnValue(true)); $flashBag = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBagInterface')->getMock(); $flashBag->expects($this->once())->method('add')->with('success', $message); $this->session->expects($this->once())->method('getFlashBag')->will($this->returnValue($flashBag)); $saveAndStayRoute = array('route' => 'test_update'); $saveAndCloseRoute = array('route' => 'test_view'); $expected = array('redirect' => true); $this->router->expects($this->once())->method('redirectAfterSave')->with($saveAndStayRoute, $saveAndCloseRoute, $entity)->will($this->returnValue($expected)); $result = $this->handler->handleUpdate($entity, $form, $saveAndStayRoute, $saveAndCloseRoute, $message, $handler); $this->assertEquals($expected, $result); }
public function testHandleSaveNoWid() { $queryParameters = ['qwe' => 'rty']; $this->request->query = new ParameterBag($queryParameters); $message = 'Saved'; /** @var \PHPUnit_Framework_MockObject_MockObject|Form $form */ $form = $this->getMockBuilder('Symfony\\Component\\Form\\Form')->disableOriginalConstructor()->getMock(); $entity = $this->getObject(); $handler = $this->getMockBuilder('Oro\\Bundle\\FormBundle\\Tests\\Unit\\Form\\Stub\\HandlerStub')->getMock(); $handler->expects($this->once())->method('process')->with($entity)->will($this->returnValue(true)); $flashBag = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBagInterface')->getMock(); $flashBag->expects($this->once())->method('add')->with('success', $message); $this->session->expects($this->once())->method('getFlashBag')->will($this->returnValue($flashBag)); $saveAndStayRoute = ['route' => 'test_update']; $saveAndCloseRoute = ['route' => 'test_view']; $expected = ['redirect' => true]; $this->router->expects($this->once())->method('redirectAfterSave')->with(array_merge($saveAndStayRoute, ['parameters' => $queryParameters]), array_merge($saveAndCloseRoute, ['parameters' => $queryParameters]), $entity)->will($this->returnValue($expected)); $result = $this->handler->handleUpdate($entity, $form, $saveAndStayRoute, $saveAndCloseRoute, $message, $handler); $this->assertEquals($expected, $result); }