$t->diag('->setOptions()'); $definition = new Definition(array($foo)); $t->is($definition->getOptions(), array('foo' => $foo), '->setOptions() sets the array of Option objects'); $definition->setOptions(array($bar)); $t->is($definition->getOptions(), array('bar' => $bar), '->setOptions() clears all Option objects'); try { $definition->getOptionForShortcut('f'); $t->fail('->setOptions() clears all Option objects'); } catch (\Exception $e) { $t->pass('->setOptions() clears all Option objects'); } // ->addOptions() $t->diag('->addOptions()'); $definition = new Definition(array($foo)); $t->is($definition->getOptions(), array('foo' => $foo), '->addOptions() adds an array of Option objects'); $definition->addOptions(array($bar)); $t->is($definition->getOptions(), array('foo' => $foo, 'bar' => $bar), '->addOptions() does not clear existing Option objects'); // ->addOption() $t->diag('->addOption()'); $definition = new Definition(); $definition->addOption($foo); $t->is($definition->getOptions(), array('foo' => $foo), '->addOption() adds a Option object'); $definition->addOption($bar); $t->is($definition->getOptions(), array('foo' => $foo, 'bar' => $bar), '->addOption() adds a Option object'); try { $definition->addOption($foo2); $t->fail('->addOption() throws a Exception if the another option is already registered with the same name'); } catch (\Exception $e) { $t->pass('->addOption() throws a Exception if the another option is already registered with the same name'); } try {