$foo = new nbOption('foo', 'f', nbOption::PARAMETER_REQUIRED, '', 'defaultValue'); $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');
public function setOption(nbOption $option, $value) { if ($option->isArray()) { $this->optionValues[$option->getName()][] = $value; } else { $this->optionValues[$option->getName()] = $value; } }