/** * Tests merge() * * @return void */ public function testMerge() { $parser = new ConsoleOptionParser('test'); $parser->addOption('test', ['short' => 't', 'boolean' => true])->addArgument('one', ['required' => true, 'choices' => ['a', 'b']])->addArgument('two', ['required' => true]); $parserTwo = new ConsoleOptionParser('test'); $parserTwo->addOption('file', ['short' => 'f', 'boolean' => true])->addOption('output', ['short' => 'o', 'boolean' => true])->addArgument('one', ['required' => true, 'choices' => ['a', 'b']]); $parser->merge($parserTwo); $result = $parser->toArray(); $options = $result['options']; $this->assertTrue(isset($options['quiet'])); $this->assertTrue(isset($options['test'])); $this->assertTrue(isset($options['file'])); $this->assertTrue(isset($options['output'])); $this->assertEquals(2, count($result['arguments'])); $this->assertEquals(6, count($result['options'])); }