/**
  * \brief initialization
  */
 protected function setUp()
 {
     global $PG_CONN;
     global $upload_pk;
     global $pfile_pk_parent;
     global $pfile_pk_child;
     global $agent_pk;
     global $DB_COMMAND;
     global $DB_NAME;
     $DB_COMMAND = dirname(dirname(dirname(dirname(__FILE__)))) . "/testing/db/createTestDB.php";
     print "*** path to test db creation command: " . $DB_COMMAND;
     exec($DB_COMMAND, $dbout, $rc);
     if (!empty($rc)) {
         throw new Exception(implode("\n", $dbout));
     }
     preg_match("/(\\d+)/", $dbout[0], $matches);
     $test_name = $matches[1];
     $db_conf = $dbout[0];
     $DB_NAME = "fosstest" . $test_name;
     $PG_CONN = DBconnect($db_conf);
     $logger = new Monolog\Logger('default');
     $this->logFileName = dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/db.sqlite.log';
     $logger->pushHandler(new Monolog\Handler\StreamHandler($this->logFileName, Monolog\Logger::ERROR));
     $this->dbManager = new ModernDbManager($logger);
     $this->dbManager->setDriver(new Fossology\Lib\Db\Driver\Postgres($PG_CONN));
     /** preparation, add uploadtree, upload, pfile, license_file record */
     $upload_filename = "license_file_test";
     /* upload file name */
     $this->dbManager->prepare($stmt = 'pfile.insert', $sql = "INSERT INTO pfile (pfile_sha1,pfile_md5,pfile_size) VALUES (\$1,\$2,\$3)");
     $this->dbManager->freeResult($this->dbManager->execute($stmt, array('AF1DF2C4B32E4115DB5F272D9EFD0E674CF2A0BC', '2239AA7DAC291B6F8D0A56396B1B8530', '4560')));
     $this->dbManager->freeResult($this->dbManager->execute($stmt, array('B1938B14B9A573D59ABCBD3BF0F9200CE6E79FB6', '55EFE7F9B9D106047718F1CE9173B869', '1892')));
     /** add nomos agent record **/
     $this->dbManager->queryOnce($sql = "INSERT INTO agent (agent_name) VALUES('nomos')");
     /** add license_ref record */
     $this->dbManager->prepare($stmt = 'license_ref.insert', $sql = "INSERT INTO license_ref" . " (rf_pk, rf_shortname, rf_text, marydone, rf_active, rf_text_updatable, rf_detector_type)" . " VALUES (\$1,\$2,\$3,\$4,\$5,\$6,\$7)");
     $this->dbManager->freeResult($this->dbManager->execute($stmt, array(1, 'test_ref', 'test_ref', 'false', 'true', 'false', 1)));
     /** get pfile id */
     $this->dbManager->prepare($stmt = 'license_ref.select', $sql = "SELECT pfile_pk from pfile where pfile_sha1" . " IN ('AF1DF2C4B32E4115DB5F272D9EFD0E674CF2A0BC', 'B1938B14B9A573D59ABCBD3BF0F9200CE6E79FB6')");
     $result = $this->dbManager->execute($stmt);
     $row = $this->dbManager->fetchArray($result);
     $pfile_pk_parent = $row['pfile_pk'];
     $row = $this->dbManager->fetchArray($result);
     $pfile_pk_child = $row['pfile_pk'];
     $this->dbManager->freeResult($result);
     /** add a license_file record */
     $agent_nomos = $this->dbManager->getSingleRow("SELECT agent_pk from agent where agent_name = 'nomos'", array(), __METHOD__ . '.agent.select');
     $agent_pk = $agent_nomos['agent_pk'];
     $this->dbManager->prepare($stmt = 'license_file.insert', $sql = "INSERT INTO license_file(rf_fk, agent_fk, pfile_fk) VALUES (\$1,\$2,\$3)");
     $this->dbManager->freeResult($this->dbManager->execute($stmt, array(1, $agent_pk, $pfile_pk_parent)));
     $this->dbManager->freeResult($this->dbManager->execute($stmt, array(2, $agent_pk, $pfile_pk_child)));
     $this->dbManager->queryOnce("INSERT INTO upload (upload_filename,upload_mode,upload_ts, pfile_fk, uploadtree_tablename)" . " VALUES ('{$upload_filename}',40,now(), '{$pfile_pk_parent}', '{$this->uploadtree_tablename}')");
     $row = $this->dbManager->getSingleRow("SELECT upload_pk from upload where upload_filename = '{$upload_filename}'", array(), __METHOD__ . '.upload.select');
     $upload_pk = $row['upload_pk'];
     $this->dbManager->prepare($stmtIn = __METHOD__ . '.uploadtree.insert', "INSERT INTO uploadtree (parent, upload_fk, pfile_fk, ufile_mode, lft, rgt, ufile_name) VALUES (\$1,\$2,\$3,\$4,\$5,\$6,\$7)");
     $this->dbManager->freeResult($this->dbManager->execute($stmtIn, array(NULL, $upload_pk, $pfile_pk_parent, 33188, 1, 2, 'license_test.file.parent')));
     $this->dbManager->prepare($stmtOut = __METHOD__ . 'uploadtree.select', "SELECT uploadtree_pk from uploadtree where pfile_fk=\$1");
     $res = $this->dbManager->execute($stmtOut, array($pfile_pk_parent));
     $row = $this->dbManager->fetchArray($res);
     $this->dbManager->freeResult($res);
     $this->uploadtree_pk_parent = $row['uploadtree_pk'];
     /** add child uploadtree record */
     $this->dbManager->freeResult($this->dbManager->execute($stmtIn, array($this->uploadtree_pk_parent, $upload_pk, $pfile_pk_child, 33188, 1, 2, 'license_test.file.child')));
     $res = $this->dbManager->execute($stmtOut, array($pfile_pk_child));
     $row = $this->dbManager->fetchArray($res);
     $this->dbManager->freeResult($res);
     $this->uploadtree_pk_child = $row['uploadtree_pk'];
     $this->uploadtree_tablename = GetUploadtreeTableName($upload_pk);
     print '.';
 }