@@ -199,12 +199,25 @@ public function testGetProcessedHelp()
199199 public function testGetSetAliases ()
200200 {
201201 $ command = new \TestCommand ();
202- $ this ->assertEquals (['name ' ], $ command ->getAliases (), '->getAliases() returns the aliases ' );
203202 $ ret = $ command ->setAliases (['name1 ' ]);
204203 $ this ->assertEquals ($ command , $ ret , '->setAliases() implements a fluent interface ' );
205204 $ this ->assertEquals (['name1 ' ], $ command ->getAliases (), '->setAliases() sets the aliases ' );
206205 }
207206
207+ public function testAliasesSetBeforeParentConstructorArePreserved ()
208+ {
209+ $ command = new class extends Command {
210+ public function __construct ()
211+ {
212+ // set aliases before calling parent constructor
213+ $ this ->setAliases (['existingalias ' ]);
214+ parent ::__construct ('foo|newalias ' );
215+ }
216+ };
217+
218+ $ this ->assertSame (['existingalias ' , 'newalias ' ], $ command ->getAliases (), 'Aliases set before parent::__construct() must be preserved. ' );
219+ }
220+
208221 #[TestWith(['name|alias1|alias2 ' , 'name ' , ['alias1 ' , 'alias2 ' ], false ])]
209222 #[TestWith(['|alias1|alias2 ' , 'alias1 ' , ['alias2 ' ], true ])]
210223 public function testSetAliasesAndHiddenViaName (string $ name , string $ expectedName , array $ expectedAliases , bool $ expectedHidden )
0 commit comments