public function testFalhaCumprirSemRequisitoEnergia()
 {
     $usuario = new Entity\Usuario();
     $usuario->setEnergia(1);
     $usuario->setSaldo(0);
     $tarefa = new Entity\Tarefa('Tarefa monetario foo', 1, 5);
     $requisito = new Entity\RequisitoMonetario();
     $requisito->setValor(1);
     $tarefa->addRequisito($requisito);
     $cumprirTarefa = new Service\CumprirTarefa($tarefa, $usuario);
     try {
         $cumprirTarefa->cumprir();
         $this->fail('Não disparou a Exception.');
     } catch (Exception $e) {
         $this->assertEquals('Saldo insuficiante.', $e->getMessage());
     }
 }
 public function realizarAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $tarefa_id = (int) $this->_getParam('tarefa_id', 0);
     $usuario = Zend_Auth::getInstance()->getIdentity();
     $usuario = $this->_em->getRepository('Application\\Entity\\Usuario')->find($usuario->getId());
     $tarefa = $this->_em->find('Application\\Entity\\Tarefa', $tarefa_id);
     $cumprirTarefa = new Service\CumprirTarefa($tarefa, $usuario);
     try {
         $cumprirTarefa->cumprir();
         $this->_em->persist($usuario);
         $this->_em->flush();
     } catch (Exception $e) {
         $this->_helper->FlashMessenger->addMessage(array('error' => $e->getMessage()));
     }
     return $this->_redirect('/index/dashboard');
 }