示例#1
0
    $t->fail('option with mode "nbOption::PARAMETER_REQUIRED" can\'t have default value');
} catch (InvalidArgumentException $e) {
    $t->pass('option with mode "nbOption::PARAMETER_REQUIRED" can\'t have default value');
}
$foo = new nbOption('foo', 'f', nbOption::PARAMETER_OPTIONAL, 'foo description', 'defaultValue');
$t->comment('nbOptionTest - Test if an argument is an array');
$foo = new nbOption('foo', '', nbOption::IS_ARRAY);
$t->is($foo->hasParameter(), false, 'option with array without mode has no parameter');
$foo = new nbOption('foo', '', nbOption::PARAMETER_NONE | nbOption::IS_ARRAY);
$t->is($foo->hasParameter(), false, 'option can be array with no parameter');
$t->is($foo->isArray(), true, 'option can be array with no parameter');
$foo = new nbOption('foo', 'f', nbOption::PARAMETER_OPTIONAL | nbOption::IS_ARRAY, 'foo description');
$t->ok($foo->isArray(), '->isArray() returns true if the argument can be an array');
$foo = new nbOption('foo', 'f', nbOption::PARAMETER_OPTIONAL, 'foo description');
$t->ok(!$foo->isArray(), '->isArray() returns false if the argument cannot be an array');
$foo = new nbOption('foo', 'f', nbOption::PARAMETER_REQUIRED | nbOption::IS_ARRAY, 'foo description');
try {
    $foo->setValue('a value');
    $t->fail('->setValue() must receive an array if option mode is "nbOption::IS_ARRAY"');
} catch (InvalidArgumentException $e) {
    $t->pass('->setValue() must receive an array if option mode is "nbOption::IS_ARRAY"');
}
$foo->setValue(array());
$t->is($foo->getValue(), array(), '->getValue() returns an empty array if option has IS_ARRAY mode');
$foo->setValue(array("val1", "val2", "val3"));
$t->is($foo->getValue(), array("val1", "val2", "val3"), '->setValue() append parameter to value if option has IS_ARRAY mode');
$t->comment('nbOptionTest - Test to string');
$option = new nbOption('foo', '', nbOption::PARAMETER_NONE);
$t->is((string) $option, '[--foo]', '->__toString() returns "[--foo]"');
$option = new nbOption('foo', '', nbOption::PARAMETER_OPTIONAL, '', 'FOO');
$t->is((string) $option, '[--foo=[FOO]]', '->__toString() returns "[--foo=[FOO]]"');
示例#2
0
文件: nbOptionSet.php 项目: nubee/bee
 /**
  * Add a nbOption object.
  *
  * @param nbOption $option A nbOption object
  */
 public function addOption(nbOption $option)
 {
     if ($this->hasOption($option->getName())) {
         throw new InvalidArgumentException(sprintf('[nbOptionSet::addOption] Option "%s" already exists', $option->getName()));
     }
     if ($this->hasOption($option->getShortcut())) {
         throw new InvalidArgumentException(sprintf('[nbOptionSet::addOption] Shortcut "%s" already registered', $option->getShortcut()));
     }
     $this->options[$option->getName()] = $option;
     if ($option->hasShortcut()) {
         $this->shortcuts[$option->getShortcut()] = $option;
     }
     if ($option->hasRequiredParameter()) {
         ++$this->requiredCount;
     }
 }
示例#3
0
 public function setOption(nbOption $option, $value)
 {
     if ($option->isArray()) {
         $this->optionValues[$option->getName()][] = $value;
     } else {
         $this->optionValues[$option->getName()] = $value;
     }
 }