/** * Test custom options works */ public function testMergeCustomOptions() { $generator = new ComposerGenerator('master', 'master', ComposerGenerator::REF_BRANCH); $base = array('require' => array('silverstripe/framework' => '~3.1')); $this->assertEquals(array('require' => array('silverstripe/framework' => '~3.1', 'silverstripe/subsites' => 'dev-master')), $generator->mergeCustomOptions(array('require' => 'silverstripe/subsites:dev-master'), $base)); $this->assertEquals(array('require' => array('silverstripe/framework' => '~3.1', 'silverstripe/translatable' => '*')), $generator->mergeCustomOptions(array('require' => 'silverstripe/translatable'), $base)); }
/** * Test custom options works when an array of required packages is provided */ public function testMergeCustomOptionsStringMoreThanOneRequired() { $generator = new ComposerGenerator('master', 'master', ComposerGenerator::REF_BRANCH); $base = array('require' => array('silverstripe/framework' => '~3.1')); // Expressed as CSV instead of separate --require options $requiredPackages = 'silverstripe/subsites:dev-master,silverstripe/comments:2.0.2'; $this->assertEquals(array('require' => array('silverstripe/framework' => '~3.1', 'silverstripe/subsites' => 'dev-master', 'silverstripe/comments' => '2.0.2')), $generator->mergeCustomOptions(array('require' => $requiredPackages), $base)); $requiredPackages = 'silverstripe/subsites:dev-master,silverstripe/comments:2.0.2,silverstripe/tagfield:1.2.1'; $this->assertEquals(array('require' => array('silverstripe/framework' => '~3.1', 'silverstripe/subsites' => 'dev-master', 'silverstripe/comments' => '2.0.2', 'silverstripe/tagfield' => '1.2.1')), $generator->mergeCustomOptions(array('require' => $requiredPackages), $base)); }