/** * @covers \Foote\Ginny\Command\GinnyInput::getOptionsFromRequest * @covers \Foote\Ginny\Command\GinnyInput::__construct */ public function testgetOptionsFromRequest() { $request = Request::createFromGlobals(); $argv = $request->server->get('argv'); $request->server->set('argv', ['ginny:generate', '--root=my/root/path/', '--extra=none', '-p', 'Manage', 'test1', 'test2=result2']); // ensures that $request->server in GinnyInput::get() loads the new argv $request->overrideGlobals(); $passed = GinnyInput::getOptionsFromRequest(); $this->assertTrue(array_key_exists('--root', $passed)); $this->assertTrue(array_key_exists('--extra', $passed)); $this->assertTrue(array_key_exists('-p', $passed)); $this->assertEquals('my/root/path/', $passed['--root']); $this->assertEquals('none', $passed['--extra']); $this->assertEquals('Manage', $passed['-p']); //test that the other stuff isn't pass on $this->assertFalse(array_key_exists('test1', $passed)); $this->assertFalse(array_key_exists('--test1', $passed)); $this->assertFalse(array_key_exists('test2', $passed)); $this->assertFalse(array_key_exists('--test2', $passed)); $yaml = new \Symfony\Component\Yaml\Parser(); $local_defaults = $yaml->parse(file_get_contents(__DIR__ . '/../../ginny.dist.yml')); $local_defaults['root'] = __DIR__ . '/../../'; /** * Ensure that GinnyInput::getOptionsFromRequest() is invoked when get() * is called without $passed. -p=Manage above should override prefix=Admin * found in $local_defaults */ $input = new GinnyInput($local_defaults); $this->assertEquals('Manage', $input->getParameterOption('--prefix')); // restore $_SERVER['argv'] $request->server->set('argv', $argv); $request->overrideGlobals(); }