public function testConstructor() { $option = new InputOption('foo'); $this->assertEquals('foo', $option->getName(), '__construct() takes a name as its first argument'); $option = new InputOption('--foo'); $this->assertEquals('foo', $option->getName(), '__construct() removes the leading -- of the option name'); try { $option = new InputOption('foo', 'f', InputOption::PARAMETER_IS_ARRAY); $this->fail('->setDefault() throws an Exception if PARAMETER_IS_ARRAY option is used when an option does not accept a value'); } catch (\Exception $e) { $this->assertInstanceOf('\\Exception', $e, '->setDefault() throws an Exception if PARAMETER_IS_ARRAY option is used when an option does not accept a value'); $this->assertEquals('Impossible to have an option mode PARAMETER_IS_ARRAY if the option does not accept a parameter.', $e->getMessage()); } // shortcut argument $option = new InputOption('foo', 'f'); $this->assertEquals('f', $option->getShortcut(), '__construct() can take a shortcut as its second argument'); $option = new InputOption('foo', '-f'); $this->assertEquals('f', $option->getShortcut(), '__construct() removes the leading - of the shortcut'); // mode argument $option = new InputOption('foo', 'f'); $this->assertFalse($option->acceptParameter(), '__construct() gives a "Option::PARAMETER_NONE" mode by default'); $this->assertFalse($option->isParameterRequired(), '__construct() gives a "Option::PARAMETER_NONE" mode by default'); $this->assertFalse($option->isParameterOptional(), '__construct() gives a "Option::PARAMETER_NONE" mode by default'); $option = new InputOption('foo', 'f', null); $this->assertFalse($option->acceptParameter(), '__construct() can take "Option::PARAMETER_NONE" as its mode'); $this->assertFalse($option->isParameterRequired(), '__construct() can take "Option::PARAMETER_NONE" as its mode'); $this->assertFalse($option->isParameterOptional(), '__construct() can take "Option::PARAMETER_NONE" as its mode'); $option = new InputOption('foo', 'f', InputOption::PARAMETER_NONE); $this->assertFalse($option->acceptParameter(), '__construct() can take "Option::PARAMETER_NONE" as its mode'); $this->assertFalse($option->isParameterRequired(), '__construct() can take "Option::PARAMETER_NONE" as its mode'); $this->assertFalse($option->isParameterOptional(), '__construct() can take "Option::PARAMETER_NONE" as its mode'); $option = new InputOption('foo', 'f', InputOption::PARAMETER_REQUIRED); $this->assertTrue($option->acceptParameter(), '__construct() can take "Option::PARAMETER_REQUIRED" as its mode'); $this->assertTrue($option->isParameterRequired(), '__construct() can take "Option::PARAMETER_REQUIRED" as its mode'); $this->assertFalse($option->isParameterOptional(), '__construct() can take "Option::PARAMETER_REQUIRED" as its mode'); $option = new InputOption('foo', 'f', InputOption::PARAMETER_OPTIONAL); $this->assertTrue($option->acceptParameter(), '__construct() can take "Option::PARAMETER_OPTIONAL" as its mode'); $this->assertFalse($option->isParameterRequired(), '__construct() can take "Option::PARAMETER_OPTIONAL" as its mode'); $this->assertTrue($option->isParameterOptional(), '__construct() can take "Option::PARAMETER_OPTIONAL" as its mode'); try { $option = new InputOption('foo', 'f', 'ANOTHER_ONE'); $this->fail('__construct() throws an Exception if the mode is not valid'); } catch (\Exception $e) { $this->assertInstanceOf('\\Exception', $e, '__construct() throws an Exception if the mode is not valid'); $this->assertEquals('Option mode "ANOTHER_ONE" is not valid.', $e->getMessage()); } }
$t->is($option->isParameterRequired(), false, '__construct() can take "Option::PARAMETER_NONE" as its mode'); $t->is($option->isParameterOptional(), false, '__construct() can take "Option::PARAMETER_NONE" as its mode'); $option = new InputOption('foo', 'f', InputOption::PARAMETER_NONE); $t->is($option->acceptParameter(), false, '__construct() can take "Option::PARAMETER_NONE" as its mode'); $t->is($option->isParameterRequired(), false, '__construct() can take "Option::PARAMETER_NONE" as its mode'); $t->is($option->isParameterOptional(), false, '__construct() can take "Option::PARAMETER_NONE" as its mode'); $option = new InputOption('foo', 'f', InputOption::PARAMETER_REQUIRED); $t->is($option->acceptParameter(), true, '__construct() can take "Option::PARAMETER_REQUIRED" as its mode'); $t->is($option->isParameterRequired(), true, '__construct() can take "Option::PARAMETER_REQUIRED" as its mode'); $t->is($option->isParameterOptional(), false, '__construct() can take "Option::PARAMETER_REQUIRED" as its mode'); $option = new InputOption('foo', 'f', InputOption::PARAMETER_OPTIONAL); $t->is($option->acceptParameter(), true, '__construct() can take "Option::PARAMETER_OPTIONAL" as its mode'); $t->is($option->isParameterRequired(), false, '__construct() can take "Option::PARAMETER_OPTIONAL" as its mode'); $t->is($option->isParameterOptional(), true, '__construct() can take "Option::PARAMETER_OPTIONAL" as its mode'); try { $option = new InputOption('foo', 'f', 'ANOTHER_ONE'); $t->fail('__construct() throws an Exception if the mode is not valid'); } catch (\Exception $e) { $t->pass('__construct() throws an Exception if the mode is not valid'); } // ->isArray() $t->diag('->isArray()'); $option = new InputOption('foo', null, InputOption::PARAMETER_OPTIONAL | InputOption::PARAMETER_IS_ARRAY);