Example #1
0
 public function __construct(Application $app)
 {
     $this->app = $app;
     $this->dataSource = DataSourceFactory::datasourceFromDbConnection($this->app['db']);
     $this->dataSource->setLogger($app['logger']);
     $upcomingCount = $this->getUpcomingCount();
     if ($upcomingCount) {
         $this->dataSource->setUpcomingCount($upcomingCount);
     }
 }
 public function exportToFile($outFile)
 {
     $dataSource = Factory::datasourceFromDbConnection($this->dbConn);
     $tickets = $dataSource->fetchPerformedTickets();
     $handle = fopen($outFile, 'w');
     if ($handle === false) {
         print "Failed to open '{$outFile}'\n";
     }
     $title = ['Ticket Id', 'Start Time', 'Song Id', 'Artist', 'Title', 'Duration (seconds)', 'Band Name', 'Vocals', 'Guitar', 'Bass', 'Drums', 'Keytar', 'RB3', 'RB4'];
     fputcsv($handle, $title);
     foreach ($tickets as $ticket) {
         $band = $ticket['band'];
         $line = [$ticket['id'], date('H:i:s', $ticket['startTime']), $ticket['song']['id'], $ticket['song']['artist'], $ticket['song']['title'], $ticket['song']['duration'], $ticket['title'], $this->performersByInstrument($band, 'V'), $this->performersByInstrument($band, 'G'), $this->performersByInstrument($band, 'B'), $this->performersByInstrument($band, 'D'), $this->performersByInstrument($band, 'K'), $ticket['song']['inRb3'] ? 'x' : '', $ticket['song']['inRb4'] ? 'x' : ''];
         fputcsv($handle, $line);
     }
     fputcsv($handle, ['ENDS']);
     print "\n Wrote to '{$outFile}'\n";
 }
 /**
  * @dataProvider databasesProvider
  * @param string $dbName
  * @param Connection $conn
  */
 public function testChangeSongOrder($dbName, $conn)
 {
     $dataSource = Factory::datasourceFromDbConnection($conn);
     $upcoming = $dataSource->fetchUpcomingTickets();
     $this->assertTrue(is_array($upcoming));
     $this->assertEquals(0, count($upcoming), "Should start with no songs after setup ({$dbName})");
     //645,647,941
     $trackOrder = [];
     $trackOrder[] = $dataSource->storeNewTicket('first', 647);
     $trackOrder[] = $dataSource->storeNewTicket('second', 941);
     $trackOrder[] = $dataSource->storeNewTicket('third', 645);
     $upcoming = $dataSource->fetchUpcomingTickets();
     $this->assertTrue(is_array($upcoming));
     $this->assertEquals(3, count($trackOrder), "Should have inserted 3 songs ({$dbName})");
     $this->assertEquals(3, count($upcoming), "Should have 3 upcoming songs ({$dbName})");
     // same order
     $ok = true;
     foreach ($trackOrder as $offset => $id) {
         $ok = $ok && $dataSource->updateTicketOffsetById($id, $offset);
     }
     $this->assertTrue($ok, "Can update tracks to same order ({$dbName})");
     // same order, bad data types
     $ok = true;
     foreach ($trackOrder as $offset => $id) {
         $ok = $ok && $dataSource->updateTicketOffsetById("{$id}", $offset);
     }
     $this->assertTrue($ok, "Can update tracks to same order, even with string ids ({$dbName})");
     // same order, bad data types
     $ok = true;
     foreach ($trackOrder as $offset => $id) {
         $ok = $ok && $dataSource->updateTicketOffsetById($id, "{$offset}");
     }
     $this->assertTrue($ok, "Can update tracks to same order, even with string offsets ({$dbName})");
     $reversed = array_reverse($trackOrder);
     $ok = true;
     foreach ($reversed as $offset => $id) {
         $ok = $ok && $dataSource->updateTicketOffsetById($id, $offset);
     }
     $this->assertTrue($ok, "Can update tracks to reversed order ({$dbName})");
 }