public function testGroupsUsageInExternalFile() { $masterContent = <<<CONFFILE [externals] secured.conf [groups] qa = [staging] [variables] db.pass: staging = <external> default = fail CONFFILE; $securedContent = <<<CONFFILE [variables] db.pass: qa = success CONFFILE; $parser = new Parser(new Filesystem(new InMemory(array(self::MASTERFILE_PATH => $masterContent, 'secured.conf' => $securedContent)))); $parser->enableIncludeSupport()->enableExternalSupport()->enableGroupSupport(); $variables = $parser->parse(self::MASTERFILE_PATH); $reader = new Reader($variables, $parser->getExternalVariables(), $parser->getGroups()); $this->assertSame('success', $reader->read('db.pass', 'staging')); }
public function testDefaultEnvironmentForGroups() { $masterContent = <<<CONFFILE [groups] # comment qa = [ *staging, preprod ] dev = [ dev1, * dev2,dev3] # comment production=[prod] CONFFILE; $parser = new Parser(new Filesystem(new InMemory(array(self::MASTERFILE_PATH => $masterContent)))); $parser->enableIncludeSupport()->enableExternalSupport()->enableGroupSupport()->parse(self::MASTERFILE_PATH); $groups = $parser->getGroups(); $expected = array('dev' => array('dev1', 'dev2', 'dev3'), 'qa' => array('staging', 'preprod'), 'production' => array('prod')); $this->assertSameArraysExceptOrder($expected, $groups); $envs = $parser->getDefaultEnvironmentsForGroups(); $expected = array('dev' => 'dev2', 'qa' => 'staging', 'production' => null); $this->assertSameArraysExceptOrder($expected, $envs); }