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;
 }