/**
  * 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));
 }