/** * Evolution of beans and utility function in the game * * @param ObjectManager $em * @param int $user_id * @param Partida $partida * @return array */ public function partidaEvolution($em, $user_id, $partida) { $userPartidaLogic = new UserPartidaLogic(); $ofertasPartida = array(); //ofertas aceptadas en una partida (tanto de las enviadas como recividas) $ofertas = $em->getRepository('BaseBundle:Ofertas')->findAllUserGameDeals($user_id, $partida->getId()); foreach ($ofertas as $oferta) { /** @var Ofertas $oferta */ //calcular alubias en funcion de si oferta enviada o recibida if ($oferta->getIdCreador()->getId() == $user_id) { $tmp = $userPartidaLogic->beansStatus($oferta, 1); } else { $tmp = $userPartidaLogic->beansStatus($oferta, 2); } $tmp['modificado'] = $oferta->getModificado(); array_push($ofertasPartida, $tmp); } /** @var UserPartida $userpartida */ $userpartida = $em->getRepository('BaseBundle:UserPartida')->findByIDS($user_id, $partida->getId()); $evolucion = array(); $a_rojas_tmp = $userpartida->getAluRojaInicial(); $a_blancas_tmp = $userpartida->getAluBlancaInicial(); foreach ($ofertasPartida as $oferta) { $oferta['aluRoja'] += $a_rojas_tmp; $oferta['aluBlanca'] += $a_blancas_tmp; $oferta['fUtilidad'] = $this->calculateFUtilidad($oferta['aluRoja'], $oferta['aluBlanca'], $partida); $a_blancas_tmp = $oferta['aluBlanca']; $a_rojas_tmp = $oferta['aluRoja']; array_push($evolucion, $oferta); } return $evolucion; }
/** * Initializes variables to mock an Entity */ protected function mock() { $this->emMod = $this->getMockBuilder('\\Doctrine\\Common\\Persistence\\ObjectManager')->disableOriginalConstructor()->getMock(); $this->repository = $this->getMockBuilder('\\Doctrine\\ORM\\EntityRepository')->disableOriginalConstructor()->getMock(); $this->now = new \DateTime('now'); $this->user = $this->em->getRepository('BaseBundle:User')->find(2); /*mokear una partida*/ $this->partida = new Partida(); $this->partida->setAluPorUsuario(20)->setRatio(0.5)->setCreado($this->now)->setFin($this->now->add(new DateInterval('P10D')))->setMaxJugadores(10)->setNombre('test1?A')->setPassword('test')->setExpY(1)->setExpZ(1); $this->partida->setIdCreador($this->user)->setMaxOfertas(2)->setTiempoOferta(10); /*mokear una oferta*/ $this->oferta = new Ofertas(); $this->oferta->setCreado($this->now)->setEstado(0)->setAluBlancaIn(10)->setAluBlancaOut(0)->setAluRojaIn(0)->setAluRojaOut(6)->setIdCreador($this->user)->setIdDestinatario($this->user)->setIdPartida($this->partida); /*mokear un log*/ $this->log = new Log(); $this->log->setUser($this->user)->setActionId(5)->setFecha($this->now); }