@@ -314,10 +314,29 @@ public function testAddArgumentObject() {
314
314
$ parser = new ConsoleOptionParser ('test ' , false );
315
315
$ parser ->addArgument (new ConsoleInputArgument ('test ' ));
316
316
$ result = $ parser ->arguments ();
317
- $ this ->assertEquals (1 , count ( $ result) );
317
+ $ this ->assertCount (1 , $ result );
318
318
$ this ->assertEquals ('test ' , $ result [0 ]->name ());
319
319
}
320
320
321
+ /**
322
+ * Test adding arguments out of order.
323
+ *
324
+ * @return void
325
+ */
326
+ public function testAddArgumentOutOfOrder () {
327
+ $ parser = new ConsoleOptionParser ('test ' , false );
328
+ $ parser ->addArgument ('name ' , array ('index ' => 1 , 'help ' => 'first argument ' ))
329
+ ->addArgument ('bag ' , array ('index ' => 2 , 'help ' => 'second argument ' ))
330
+ ->addArgument ('other ' , array ('index ' => 0 , 'help ' => 'Zeroth argument ' ));
331
+
332
+ $ result = $ parser ->arguments ();
333
+ $ this ->assertCount (3 , $ result );
334
+ $ this ->assertEquals ('other ' , $ result [0 ]->name ());
335
+ $ this ->assertEquals ('name ' , $ result [1 ]->name ());
336
+ $ this ->assertEquals ('bag ' , $ result [2 ]->name ());
337
+ $ this ->assertSame (array (0 , 1 , 2 ), array_keys ($ result ));
338
+ }
339
+
321
340
/**
322
341
* test overwriting positional arguments.
323
342
*
0 commit comments