public function testSpec() { $options = new OptionCollection(); $options->add('f|foo:', 'option require value'); $options->add('b|bar+', 'option with multiple value'); $options->add('z|zoo?', 'option with optional value'); $options->add('v|verbose', 'verbose message'); $options->add('d|debug', 'debug message'); $this->assertEquals(5, $options->size()); $this->assertEquals(5, count($options)); $opt = $options->get('foo'); $this->assertTrue($opt->isRequired()); $opt = $options->get('bar'); $this->assertTrue($opt->isMultiple()); $opt = $options->get('zoo'); $this->assertTrue($opt->isOptional()); $opt = $options->get('debug'); $this->assertNotNull($opt); $this->assertInstanceOf('GetOptionKit\\Option', $opt); $this->assertEquals('debug', $opt->long); $this->assertEquals('d', $opt->short); $this->assertTrue($opt->isFlag()); return $options; }