public function testProcessValidPost() { $offerData = ['offer', 'data']; $quote = new Quote(); $order = new Order(); $this->request->setMethod('POST'); $this->form->expects($this->once())->method('submit')->with($this->request); $this->form->expects($this->once())->method('isValid')->willReturn(true); $this->form->expects($this->once())->method('getData')->willReturn($offerData); $this->converter->expects($this->once())->method('convert')->with($quote, $this->accountUser, $offerData)->willReturn($order); $this->manager->expects($this->once())->method('persist')->with($order); $this->manager->expects($this->once())->method('flush'); $this->assertEquals($order, $this->handler->process($quote)); }
/** * @Route( * "/create-order/from-widget/{id}", * name="orob2b_sale_frontend_quote_create_order_from_widget", * requirements={"id"="\d+"} * ) * @AclAncestor("orob2b_order_frontend_create") * @ParamConverter("quote", options={"repository_method" = "getQuote"}) * @Template("OroB2BSaleBundle:Quote/Frontend:createOrder.html.twig") * * @param Request $request * @param Quote $quote * @return array|RedirectResponse */ public function createOrderFromWidgetAction(Request $request, Quote $quote) { $form = $this->createForm(QuoteToOrderType::NAME, $quote); $objectManager = $this->getOrderObjectManager(); $converter = $this->get('orob2b_sale.service.quote_to_order_converter'); $handler = new QuoteToOrderHandler($form, $request, $objectManager, $converter, $this->getUser()); $order = $handler->process($quote); if ($order) { $this->addSuccessfulConversionMessage(); } return ['form' => $form->createView(), 'quote' => $quote, 'order' => $order]; }