Преглед на файлове

added test to verify ArgvInput->parse() failure with array input definition

Degory Valentine преди 14 години
родител
ревизия
057e86161e
променени са 2 файла, в които са добавени 9 реда и са изтрити 1 реда
  1. 1 1
      src/Symfony/Component/Console/Input/ArgvInput.php
  2. 8 0
      tests/Symfony/Tests/Component/Console/Input/ArgvInputTest.php

+ 1 - 1
src/Symfony/Component/Console/Input/ArgvInput.php

@@ -164,7 +164,7 @@ class ArgvInput extends Input
 
         // unexpected argument
         } else {
-            throw new RuntimeException('Too many arguments.');
+            throw new \RuntimeException('Too many arguments.');
         }
     }
 

+ 8 - 0
tests/Symfony/Tests/Component/Console/Input/ArgvInputTest.php

@@ -135,6 +135,14 @@ class ArgvInputTest extends \PHPUnit_Framework_TestCase
         $input = new TestInput(array('cli.php', '-fbbar'));
         $input->bind(new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputOption('bar', 'b', InputOption::VALUE_OPTIONAL))));
         $this->assertEquals(array('foo' => 'bbar', 'bar' => null), $input->getOptions(), '->parse() parses short options when they are aggregated as a single one and one of them takes a value');
+
+        try {
+            $input = new TestInput(array('cli.php', 'foo', 'bar', 'baz', 'bat'));
+            $input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::IS_ARRAY))));
+            $this->assertEquals(array('name' => array('foo', 'bar', 'baz', 'bat')), $input->getArguments(), '->parse() parses array arguments');
+        } catch (\RuntimeException $e) {
+            $this->assertNotEquals('Too many arguments.', $e->getMessage(), '->parse() parses array arguments');
+        }
     }
 
     public function testGetFirstArgument()