/** * Initializes context. * Every scenario gets it's own context object. * * @param array $parameters context parameters (set them up through behat.yml) */ public function __construct(array $parameters) { $config = new \Doctrine\DBAL\Configuration(); self::$db = \Doctrine\DBAL\DriverManager::getConnection(array('dbname' => $parameters['database']['dbname'], 'user' => $parameters['database']['username'], 'password' => $parameters['database']['password'], 'host' => $parameters['database']['host'], 'driver' => $parameters['database']['driver'])); $datasource = new \Phabric\Datasource\Doctrine(self::$db, $parameters['Phabric']['entities']); $this->phabric = new Phabric($datasource); $this->phabric->createEntitiesFromConfig($parameters['Phabric']['entities']); $this->phabric->addDataTransformation('UKTOMYSQLDATE', function ($date) { $date = \DateTime::createFromFormat('d/m/Y H:i', $date); return $date->format('Y-m-d H:i:s'); }); $this->phabric->addDataTransformation('ATTENDEELOOKUP', function ($attendeeName, $bus) { $ent = $bus->getEntity('attendee'); $id = $ent->getNamedItemId($attendeeName); return $id; }); $this->phabric->addDataTransformation('SESSIONLOOKUP', function ($sessionName, $bus) { $ent = $bus->getEntity('session'); $id = $ent->getNamedItemId($sessionName); return $id; }); $this->phabric->addDataTransformation('UPDOWNTOINT', function ($action) { $action = strtoupper($action); switch ($action) { case 'UP': return +1; break; case 'DOWN': return -1; case 'NO VOTE': return 0; } }); $this->phabric->addDataTransformation('SNAKECASE', function ($name) { return str_replace(' ', '_', strtolower($name)); }); }