/** * @return DataBackend[] */ public function provideInstallationBackends() { $backends = array(); $backends[] = new PDODataBackend(PDOFactory::makePDO(), "bavtest_"); $fileUtil = new FileUtil(); $backends[] = new FileDataBackend(tempnam($fileUtil->getTempDirectory(), "bavtest")); $conn = array("driver" => "pdo_sqlite", "path" => ":memory:"); $doctrineContainer = DoctrineBackendContainer::buildByConnection($conn, true); $backends[] = new DoctrineDataBackend($doctrineContainer->getEntityManager()); foreach ($backends as &$backend) { if ($backend->isInstalled()) { $backend->uninstall(); } self::$freeableDatabackends[] = $backend; $backend = array($backend); } return $backends; }
public static function setUpBeforeClass() { self::$pdo = PDOFactory::makePDO(); self::$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); self::$pdo->exec("DROP TABLE IF EXISTS bank"); self::$pdo->exec("CREATE TEMPORARY TABLE bank (\n id int primary key,\n blz char(8),\n isMain tinyint(1),\n name varchar(58),\n plz varchar(5),\n city varchar(35),\n shortterm varchar(27),\n pan char(5),\n bic varchar(11),\n validator char(2),\n index(blz),\n index(name),\n index(shortterm),\n index(pan),\n index(bic)\n ) engine=MEMORY"); $fp = fopen(__DIR__ . '/../../data/banklist.txt', 'r'); if (!is_resource($fp)) { throw new RuntimeException('I/O-Error'); } $insert = self::$pdo->prepare("INSERT INTO bank\n ( id, blz, isMain, name, plz, city, shortterm, pan, bic, validator)\n VALUES (:id, :blz, :isMain, :name, :plz, :city, :shortTerm, :pan, :bic, :validator)"); $insert->bindParam(':id', $id); $insert->bindParam(':blz', $blz); $insert->bindParam(':isMain', $isMain); $insert->bindParam(':name', $name); $insert->bindParam(':plz', $plz); $insert->bindParam(':city', $city); $insert->bindParam(':shortTerm', $shortTerm); $insert->bindParam(':pan', $pan); $insert->bindParam(':bic', $bic); $insert->bindParam(':validator', $validator); while ($line = fgets($fp)) { $blz = substr($line, 0, 8); $isMain = $line[8] === '1' ? 1 : 0; $name = trim(substr($line, 9, 58)); $plz = trim(substr($line, 67, 5)); $city = trim(substr($line, 72, 35)); $shortTerm = trim(substr($line, 107, 27)); $pan = trim(substr($line, 134, 5)); $bic = trim(substr($line, 139, 11)); $validator = substr($line, 150, 2); $id = substr($line, 152, 6); $insert->execute(); } fclose($fp); }
#!/bin/env php <?php /** * Installs the test environment * * @author Markus Malkusch <*****@*****.**> * @license WTFPL */ namespace malkusch\bav; require_once __DIR__ . "/../bootstrap.php"; try { ConfigurationRegistry::getConfiguration()->setAutomaticInstallation(false); $databack = ConfigurationRegistry::getConfiguration()->getDatabackendContainer()->getDataBackend(); // install file $databack->install(); echo "Bundesbank file downloaded.\n"; // install PDO $pdoContainer = new PDODataBackendContainer(PDOFactory::makePDO()); $pdoContainer->getDataBackend()->install(); echo "PDO installed.\n"; } catch (DataBackendException $error) { die("Installation failed: {$error->getMessage()}\n"); }
public function setUp() { $this->statementContainer = new StatementContainer(PDOFactory::makePDO()); }
/** * @return Bank[][] */ public function provideBanks() { $nodeNumber = getenv(self::ENV_NODE_NUMBER); if ($nodeNumber) { self::$nodeNumber = (int) $nodeNumber; } $nodeCount = getenv(self::ENV_NODE_COUNT); if ($nodeCount) { self::$nodeCount = (int) $nodeCount; } self::assertGreaterThan(self::$nodeNumber, self::$nodeCount); $banks = array(); $backend = new PDODataBackend(PDOFactory::makePDO()); $i = 0; foreach ($backend->getAllBanks() as $bank) { // only pick banks for this node. if ($i % self::$nodeCount == self::$nodeNumber) { $banks[] = array($bank); } $i++; } return $banks; }
/** * @return SQLDataBackend[][] */ public function provideBackends() { $conn = array("pdo" => PDOFactory::makePDO()); $doctrineContainer = DoctrineBackendContainer::buildByConnection($conn, true); return array(array(new PDODataBackend(PDOFactory::makePDO())), array($doctrineContainer->getDataBackend())); }