public function testGetOrderTotalAmount() { $order = new TicketsOrder(); $ticket = new Ticket(); $ticket->setPrice(20); $order->addTicket($ticket); $ticket = new Ticket(); $ticket->setPrice(25); $order->addTicket($ticket); $ticket = new Ticket(); $ticket->setPrice(36); $order->addTicket($ticket); $ticketsOrderRepository = $this->getMockBuilder(TicketsOrderRepository::class)->disableOriginalConstructor()->setMethods(array('findOneBy'))->getMock(); $ticketsOrderRepository->expects($this->at(0))->method('findOneBy')->will($this->returnValue(null)); $ticketsOrderRepository->expects($this->at(1))->method('findOneBy')->will($this->returnValue($order)); $this->entityManager->expects($this->any())->method('getRepository')->will($this->returnValue($ticketsOrderRepository)); try { $amount = $this->paymentOrderInformation->getOrderTotalAmount(1, 'AAAAA'); $this->fail('a null order must throw an exception'); } catch (HttpException $e) { $this->assertEquals('400', $e->getStatusCode()); } $amount = $this->paymentOrderInformation->getOrderTotalAmount(1, 'AAAAA'); $this->assertEquals(81, $amount); }
/** * Test an empty Ticket entity */ public function testEmptyTicket() { $ticket = new Ticket(); $this->assertNull($ticket->getId()); $this->assertNull($ticket->getEvent()); $this->assertNull($ticket->getPrice()); $this->assertNull($ticket->getLinkToBuyTicket()); }
/** * Load data fixtures with the passed EntityManager * * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $orders = array(array('ref' => 'AAAA', 'visitDate' => new \DateTime('2015-11-13'), 'visitDuration' => 'JOURNEE', 'validate' => false, 'tickets' => array(array('name' => 'Normal', 'longDescription' => 'De 12 ans à 59 ans', 'shortDescription' => '12 à 59 ans', 'price' => 16.0, 'details' => array(array('number' => 1, 'ageMin' => 12, 'ageMax' => 59, 'visitor' => array('lastName' => 'DUPONT', 'firstName' => 'Alain', 'country' => 'France', 'birthdate' => new \DateTime('1970-02-17')))))))); foreach ($orders as $order) { $ticketsOrder = new TicketsOrder(); $ticketsOrder->setRef($order['ref']); $ticketsOrder->setVisitDate($order['visitDate']); $ticketsOrder->setVisitDuration($order['visitDuration']); $ticketsOrder->setValidate($order['validate']); foreach ($order['tickets'] as $orderedTicket) { $ticket = new Ticket(); $ticket->setName($orderedTicket['name']); $ticket->setLongDescription($orderedTicket['longDescription']); $ticket->setShortDescription($orderedTicket['shortDescription']); $ticket->setPrice($orderedTicket['price']); foreach ($orderedTicket['details'] as $detail) { $ticketDetail = new TicketDetail(); $ticketDetail->setNumber($detail['number']); $ticketDetail->setAgeMin($detail['ageMin']); $ticketDetail->setAgeMax($detail['ageMax']); $visitor = new Visitor(); $visitor->setLastName($detail['visitor']['lastName']); $visitor->setFirstName($detail['visitor']['firstName']); $visitor->setCountry($detail['visitor']['country']); $visitor->setBirthdate($detail['visitor']['birthdate']); $ticketDetail->setVisitor($visitor); $ticket->addTicketDetail($ticketDetail); } $ticketsOrder->addTicket($ticket); } $manager->persist($ticketsOrder); } $manager->flush(); }
/** * Load data fixtures with the passed EntityManager * * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $orders = array(array('ref' => 'AD5BF6C12356981F', 'visitDate' => new \DateTime('2015-11-13'), 'visitDuration' => 'JOURNEE', 'validate' => false, 'tickets' => array(array('name' => 'Normal', 'longDescription' => 'De 12 ans à 59 ans', 'shortDescription' => '12 à 59 ans', 'price' => 16.0, 'details' => array(array('number' => 1, 'ageMin' => 12, 'ageMax' => 59, 'visitor' => array('lastName' => 'DUPONT', 'firstName' => 'Alain', 'country' => 'France', 'birthdate' => new \DateTime('1970-02-17'))))), array('name' => 'Réduit', 'longDescription' => 'A partir de 12 ans', 'shortDescription' => 'Plus de 12 ans', 'price' => 10.0, 'details' => array(array('number' => 1, 'ageMin' => 12, 'ageMax' => 999, 'visitor' => array('lastName' => 'DUPONT', 'firstName' => 'Hélène', 'country' => 'Belgique', 'birthdate' => new \DateTime('1967-11-12'))))))), array('ref' => 'DFE3A25C43123B2A', 'visitDate' => new \DateTime('2015-11-14'), 'visitDuration' => 'DEMI_JOURNEE', 'validate' => false, 'tickets' => array(array('name' => 'Famille', 'longDescription' => 'Famille (2 adultes et 2 enfants de même nom de famille', 'shortDescription' => 'Famille: 2adu./2enf.', 'price' => 35.0, 'details' => array(array('number' => 1, 'ageMin' => 12, 'ageMax' => 999, 'visitor' => array('lastName' => 'FRANCE', 'firstName' => 'Lucien', 'country' => 'France', 'birthdate' => new \DateTime('1953-06-11'))), array('number' => 1, 'ageMin' => 12, 'ageMax' => 999, 'visitor' => array('lastName' => 'FRANCE', 'firstName' => 'Lucie', 'country' => 'France', 'birthdate' => new \DateTime('1959-11-06'))), array('number' => 3, 'ageMin' => 4, 'ageMax' => 11, 'visitor' => array('lastName' => 'FRANCE', 'firstName' => 'Paul', 'country' => 'France', 'birthdate' => new \DateTime('2004-02-06'))), array('number' => 3, 'ageMin' => 4, 'ageMax' => 11, 'visitor' => array('lastName' => 'FRANCE', 'firstName' => 'Claire', 'country' => 'France', 'birthdate' => new \DateTime('2007-05-15'))))))), array('ref' => 'EAABC456A234B6FA', 'visitDate' => new \DateTime('2016-01-02'), 'visitDuration' => 'JOURNEE', 'validate' => true, 'tickets' => array(array('name' => 'Sénior', 'longDescription' => 'A partir de 60 ans', 'shortDescription' => 'Plus de 60 ans', 'price' => 12.0, 'details' => array(array('number' => 1, 'ageMin' => 60, 'ageMax' => 999, 'visitor' => array('lastName' => 'MICHOU', 'firstName' => 'Michelle', 'country' => 'France', 'birthdate' => new \DateTime('1953-02-14')))))))); foreach ($orders as $order) { $ticketsOrder = new TicketsOrder(); $ticketsOrder->setRef($order['ref']); $ticketsOrder->setVisitDate($order['visitDate']); $ticketsOrder->setVisitDuration($order['visitDuration']); $ticketsOrder->setValidate($order['validate']); foreach ($order['tickets'] as $orderedTicket) { $ticket = new Ticket(); $ticket->setName($orderedTicket['name']); $ticket->setLongDescription($orderedTicket['longDescription']); $ticket->setShortDescription($orderedTicket['shortDescription']); $ticket->setPrice($orderedTicket['price']); foreach ($orderedTicket['details'] as $detail) { $ticketDetail = new TicketDetail(); $ticketDetail->setNumber($detail['number']); $ticketDetail->setAgeMin($detail['ageMin']); $ticketDetail->setAgeMax($detail['ageMax']); $visitor = new Visitor(); $visitor->setLastName($detail['visitor']['lastName']); $visitor->setFirstName($detail['visitor']['firstName']); $visitor->setCountry($detail['visitor']['country']); $visitor->setBirthdate($detail['visitor']['birthdate']); $ticketDetail->setVisitor($visitor); $ticket->addTicketDetail($ticketDetail); } $ticketsOrder->addTicket($ticket); } $manager->persist($ticketsOrder); } $manager->flush(); }
/** * @param string $attribute * @param Ticket $object * @param null $user * * @return bool */ protected function isGranted($attribute, $object, $user = null) { if (!$user instanceof UserInterface) { return false; } if ($attribute === 'REGISTRATION_OPEN') { if ($object->isPublic() === false) { return false; } $now = new \DateTime('today'); if ($now < $object->getStartDate() || $now > $object->getEndDate()) { return false; } return true; } $convention = $object->getConvention(); $seats = $this->repository->countSeats($convention, $user); if ($object->isReduced()) { if ($seats < $convention->getReducedSeats()) { return true; } } else { if ($seats < $convention->getSeats()) { return true; } } return false; }
/** * {@inheritdoc} */ public function load(ObjectManager $manager) { $em = $this->container->get('doctrine')->getEntityManager('default'); $userManager = $this->container->get('fos_user.user_manager'); $date = new \DateTime(); // Get projections and clients from database $projections = $em->getRepository('AppBundle:Projection')->findAll(); //Get price categories $priceCategories = $em->getRepository('AppBundle:PriceCategory')->findAll(); //Get users $users = array(); foreach ($this->userEmails as $email) { $users[] = $userManager->findUserByEmail('*****@*****.**'); } // Add tickets into database for ($i = 0; $i < 10000; $i++) { $ticket = new Ticket(); $projection = $projections[array_rand($projections)]; $priceCategory = $priceCategories[array_rand($priceCategories)]; $freeSeats = $em->getRepository('AppBundle:Seat')->findFreeSeats($projection->getId()); $seat = $freeSeats[array_rand($freeSeats)]; // Set attributes to ticket if (rand(0, 1) == 1) { $ticket->setUser($users[array_rand($users)]); } $ticket->setProjection($projection); $ticket->setSeat($seat); $ticket->setPriceCategory($priceCategory); $ticket->setTicketPrice($priceCategory->getCategoryPrice()); $date->setTimestamp(randomTimestamp('2015/10/01', $projection->getDate()->format('Y-m-d'))); $ticket->setBookingDate($date); $date->setTimestamp(randomTimestamp($date->format('Y-m-d'), $projection->getDate()->format('Y-m-d'))); if (rand(0, 1) == 1 || !$ticket->getBookingDate()) { $ticket->setPaymentDate($date); } $manager->persist($ticket); } $manager->flush(); }
private function controlPostTicket(Ticket $ticket) { $this->assertEquals('Famille', $ticket->getName()); $this->assertEquals('Famille: 2adu./2enf.', $ticket->getShortDescription()); $this->assertEquals(35, $ticket->getPrice()); $ticketDetails = $ticket->getTicketDetails(); $this->assertEquals(4, count($ticketDetails)); $firstTicketDetail = $ticketDetails->first(); $this->assertEquals(1, $firstTicketDetail->getNumber()); $this->assertEquals(12, $firstTicketDetail->getAgeMin()); $this->assertEquals(999, $firstTicketDetail->getAgeMax()); $lastTicketDetail = $ticketDetails->last(); $this->assertEquals(4, $lastTicketDetail->getNumber()); $this->assertEquals(4, $lastTicketDetail->getAgeMin()); $this->assertEquals(11, $lastTicketDetail->getAgeMax()); }
/** * Add ticket * * @param \AppBundle\Entity\Ticket $ticket * * @return TicketsOrder */ public function addTicket(\AppBundle\Entity\Ticket $ticket) { $this->tickets[] = $ticket; $ticket->setTicketsOrder($this); return $this; }
private function getOrder() { $order = new TicketsOrder(); $order->setRef('AD5BF6C12356981F'); $order->setVisitDate(new \DateTime('2015-11-13')); $order->setVisitDuration('JOURNEE'); $order->setMail('*****@*****.**'); $order->setValidate(false); $ticket = new Ticket(); $ticket->setName('Normal'); $ticket->setLongDescription('De 12 ans à 59 ans'); $ticket->setShortDescription('12 à 59 ans'); $ticket->setPrice(16.0); $detail = new TicketDetail(); $detail->setAgeMin(12); $detail->setAgeMax(59); $visitor = new Visitor(); $visitor->setFirstName('Alain'); $visitor->setLastName('DUPONT'); $visitor->setCountry('Belgique'); $visitor->setBirthdate(new \DateTime('1970-02-17')); $detail->setVisitor($visitor); $ticket->addTicketDetail($detail); $order->addTicket($ticket); $ticket = new Ticket(); $ticket->setName('Famille'); $ticket->setLongDescription('Famille (2 adultes et 2 enfants de même nom de famille'); $ticket->setShortDescription('Famille: 2adu./2enf.'); $ticket->setPrice(35.0); $detail = new TicketDetail(); $detail->setAgeMin(12); $detail->setAgeMax(999); $visitor = new Visitor(); $visitor->setFirstName('Lucien'); $visitor->setLastName('FRANCE'); $visitor->setCountry('France'); $visitor->setBirthdate(new \DateTime('1953-06-11')); $detail->setVisitor($visitor); $ticket->addTicketDetail($detail); $detail = new TicketDetail(); $detail->setAgeMin(12); $detail->setAgeMax(999); $visitor = new Visitor(); $visitor->setFirstName('Lucie'); $visitor->setLastName('FRANCE'); $visitor->setCountry('France'); $visitor->setBirthdate(new \DateTime('1959-11-06')); $detail->setVisitor($visitor); $ticket->addTicketDetail($detail); $detail = new TicketDetail(); $detail->setAgeMin(4); $detail->setAgeMax(11); $visitor = new Visitor(); $visitor->setFirstName('Paul'); $visitor->setLastName('FRANCE'); $visitor->setCountry('France'); $visitor->setBirthdate(new \DateTime('2004-02-06')); $detail->setVisitor($visitor); $ticket->addTicketDetail($detail); $detail = new TicketDetail(); $detail->setAgeMin(4); $detail->setAgeMax(11); $visitor = new Visitor(); $visitor->setFirstName('Claire'); $visitor->setLastName('FRANCE'); $visitor->setCountry('France'); $visitor->setBirthdate(new \DateTime('2007-05-15')); $detail->setVisitor($visitor); $ticket->addTicketDetail($detail); $order->addTicket($ticket); return $order; }
/** * @param $ticketType * @return Ticket */ private function createTicket($ticketType) { $ticket = new Ticket(); $ticket->setName($ticketType->getName()); $ticket->setLongDescription($ticketType->getLongDescription()); $ticket->setShortDescription($ticketType->getShortDescription()); $ticket->setPrice($ticketType->getPrice()); foreach ($ticketType->getTicketTypeDetails() as $ticketTypeDetail) { $ticketDetail = new TicketDetail(); $ticketDetail->setNumber($ticketTypeDetail->getNumber()); $ticketDetail->setAgeMin($ticketTypeDetail->getAgeMin()); $ticketDetail->setAgeMax($ticketTypeDetail->getAgeMax()); $ticket->addTicketDetail($ticketDetail); } return $ticket; }