public function it_should_handle_pay(Intent $intent) { $intent->getStatus()->willReturn(Intent::STATUS_NEW); $intent->getId()->willReturn(666); $this->em->persist($intent)->shouldBeCalled(); $this->em->flush()->shouldBeCalled(); $intent->setStatus('done')->shouldBeCalled(); $resp = $this->pay($intent)->shouldHaveType('Symfony\\Component\\HttpFoundation\\Response'); }
/** * return anything that can be managed as a response */ public function pay(Intent $intent) { if ($intent->getStatus() === Intent::STATUS_NEW) { $intent->setStatus(Intent::STATUS_PENDING); $entityMgr = $this->getDoctrine()->getManager(); $entityMgr->persist($intent); $entityMgr->flush(); return new RedirectResponse($this->getRouter()->generate('donate_ogone_pay')); } return new Response('', 500); }
public function pay(Intent $intent) { if ($intent->getStatus() === Intent::STATUS_NEW) { //le payement est immédiatement terminé, $intent->setStatus(Intent::STATUS_DONE); $em = $this->doctrine->getManager(); //TODO should we dispatch an event or something? $em->persist($intent); $em->flush(); return new RedirectResponse($this->router->generate('donate_payment_check_promise_completed')); } $response = new Response(); $response->setStatusCode(500); return $response; }