/** * @test * @group functional */ public function listUnprintedTickets() { $client = static::createClient(); $container = $client->getContainer(); // Confirm registration key /* @var $em \Doctrine\Common\Persistence\ObjectManager */ $em = $container->get('doctrine')->getManager(); $event = $em->getRepository('BCRMBackendBundle:Event\\Event')->findAll()[0]; // Create registrations for ($i = 0; $i < 5; $i++) { $registration = new Registration(); $registration->setEmail(sprintf('*****@*****.**', $i)); $registration->setName(sprintf('John Doe %d', $i)); $registration->setEvent($event); $registration->setConfirmed(true); $registration->setSaturday(false); $registration->setSunday(true); $registration->setTags(sprintf('#johndoe%d', $i)); $em->persist($registration); } // Create tickets for ($i = 0; $i < 5; $i++) { $checkedIn = $i > 1; $sundayTicket = new Ticket(); $sundayTicket->setEmail(sprintf('*****@*****.**', $i)); $sundayTicket->setName(sprintf('John Doe %d', $i)); $sundayTicket->setEvent($event); $sundayTicket->setDay(Ticket::DAY_SUNDAY); $sundayTicket->setCode(sprintf('PRNT%d', $i)); $sundayTicket->setNotified(true); $sundayTicket->setCheckedIn($checkedIn); $em->persist($sundayTicket); $saturdayTicket = new Ticket(); $saturdayTicket->setEmail(sprintf('*****@*****.**', $i)); $saturdayTicket->setName(sprintf('John Doe %d', $i)); $saturdayTicket->setEvent($event); $saturdayTicket->setDay(Ticket::DAY_SATURDAY); $saturdayTicket->setCode(sprintf('NOPRNT%d', $i)); $saturdayTicket->setNotified(true); $saturdayTicket->setCheckedIn($checkedIn); $em->persist($saturdayTicket); } $em->flush(); $client = static::createClient(array(), array('PHP_AUTH_USER' => 'concierge', 'PHP_AUTH_PW' => 'letmein')); $client->request('GET', '/api/printing/queue'); $response = $client->getResponse(); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals("application/json", $response->headers->get('Content-Type')); $this->assertEquals("utf-8", $response->getCharset()); $queue = json_decode($response->getContent()); $this->assertEquals(3, count($queue->items)); $ticket = $queue->items[0]; $this->assertObjectHasAttribute('name', $ticket); $this->assertObjectHasAttribute('tags', $ticket); $this->assertObjectHasAttribute('code', $ticket); $this->assertObjectHasAttribute('day', $ticket); $this->assertEquals('#' . strtolower(str_replace(' ', '', $ticket->name)), $ticket->tags); $this->assertEquals(1, preg_match('/^PRNT[0-9]+$/', $ticket->code)); $this->assertEquals(2, $ticket->day); return $queue->items; }
/** * @test * @group functional * @group regression * @depends vipTicketsShouldNotCountForEventCapacity */ public function vipTicketsShouldBeCreatedIfEventIsOverCapacity() { /* @var $em \Doctrine\Common\Persistence\ObjectManager */ $client = static::createClient(); $container = $client->getContainer(); $em = $container->get('doctrine')->getManager(); $event = $em->getRepository('BCRMBackendBundle:Event\\Event')->findAll()[0]; $event->setCapacity(1); $em->persist($event); $em->flush(); // Create Sponsor registration $sponsor2 = new Registration(); $sponsor2->setName('Sponsor 2'); $sponsor2->setEvent($event); $sponsor2->setEmail('*****@*****.**'); $sponsor2->setSaturday(true); $sponsor2->setConfirmed(true); $sponsor2->setType(Registration::TYPE_SPONSOR); $em->persist($sponsor2); $em->flush(); $this->createTicketsCommand($container); $this->assertEquals(6, count($em->getRepository('BCRMBackendBundle:Event\\Ticket')->findBy(array('event' => $event, 'day' => Ticket::DAY_SATURDAY)))); }
/** * @test * @group functional * @depends removeTickets */ public function thereShouldBeNoMoreTicketsThanCapacity() { $client = static::createClient(); $container = $client->getContainer(); /* @var $em \Doctrine\Common\Persistence\ObjectManager */ $em = $container->get('doctrine')->getManager(); $this->assertEquals(0, count($em->getRepository('BCRMBackendBundle:Event\\Ticket')->findAll())); $event = $em->getRepository('BCRMBackendBundle:Event\\Event')->findAll()[0]; // Create confirmed registrations for ($i = 1; $i <= 5; $i++) { $email = 'john.doe.198' . $i . '@domain.com'; $registration = new Registration(); $registration->setName($i); $registration->setEvent($event); $registration->setEmail($email); $registration->setSaturday(true); $registration->setConfirmed(true); $em->persist($registration); } $em->flush(); $this->createTicketsCommand($container); $tickets = $em->getRepository('BCRMBackendBundle:Event\\Ticket')->findBy(array('event' => $event, 'day' => Ticket::DAY_SATURDAY)); $this->assertEquals(3, count($tickets)); $this->assertInArray('*****@*****.**', array_map(function (Ticket $t) { return $t->getEmail(); }, $tickets)); // Unregister Tickets $unregistration = new Unregistration(); $unregistration->setEvent($event); $unregistration->setEmail('*****@*****.**'); $unregistration->setConfirmed(true); $unregistration->setSaturday(true); $em->persist($unregistration); $em->flush(); $this->processUnregistrationsCommand($container); $this->assertEquals(2, count($em->getRepository('BCRMBackendBundle:Event\\Ticket')->findBy(array('event' => $event, 'day' => Ticket::DAY_SATURDAY)))); $this->createTicketsCommand($container); $tickets = $em->getRepository('BCRMBackendBundle:Event\\Ticket')->findBy(array('event' => $event, 'day' => Ticket::DAY_SATURDAY)); $this->assertEquals(3, count($tickets)); $this->assertNotInArray('*****@*****.**', array_map(function (Ticket $t) { return $t->getEmail(); }, $tickets)); }