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})"); }