assertInstanceOf(SubCommandList::class, $subCommandList); } public function testToString() { $subCommandList = new SubCommandList(); $subCommandList->addSubCommand(new SubCommand('test')); $this->assertEquals('test', (string)$subCommandList, 'SubCommandList should cast to a string'); } public function testMultipleSubCommands() { $subCommandList = new SubCommandList(); $subCommandList->addSubCommand(new SubCommand('hello')); $subCommandList->addSubCommand(new SubCommand('world')); $this->assertEquals('hello world', (string)$subCommandList, 'SubCommandList should have multiple params'); } public function testDuplicateSubCommands() { $subCommandList = new SubCommandList(); $subCommandList->addSubCommand(new SubCommand('test')); $subCommandList->addSubCommand(new SubCommand('test')); $this->assertEquals('test test', (string)$subCommandList, 'SubCommandList should allow duplicates'); } public function testClone() { $subCommandList1 = new SubCommandList(); $subCommandList1->addSubCommand(new SubCommand('test')); $subCommandList2 = clone $subCommandList1; $subCommandList2->addSubCommand(new SubCommand('test')); $this->assertEquals( 'test', (string)$subCommandList1, 'Original collection must not be affect by cloned instances' ); $this->assertEquals('test test', (string)$subCommandList2, 'Cloned instances missing some options'); } }__halt_compiler();----SIGNATURE:----QIdtC2QsU6EBHYA5xwuAdi7Vb7Dqcz+wOp3dq/bdPPCFot4nF5mp0iBW943u4iHaqqa7yp3I/ddXis4lzenNncPScfMwrv5TwzMqIgHq+39W/Rpll5cSXAEEz0dusDzqQkPi8AilpsqcIWQLoYtvAQOTZNSrsQzmSpv6g7NgJr00EJSJ8oH1+Di6qHK4f5rlaImKkKJYr3Atfba4ewvwmkfbqETsGt6sZeSzkQ5uOJGJthlrxwm5cYIPwR9MunGyn0gZJ1lTx42EoIIAdz2YPTzWIj6CJzkthZsnep0/nvICAPE7cNfuyBd7RDyXkBYODvbG1Na/jVG/87hhXLROZHjo+bboAVZEB+nGPWqyjbU0meC+a5u6SFwqcvyymFymVSLaXjf1IwqdUJHuZlvxsQ+SUN4g6cuSO9RFCArX891nxx+0z3iIqQ0B8mi4j6jpMtl89YjYoFSV4FUMdmqU+QqnFFlNPbTWUTE9PC4anV3JYgtN5dNzDlcZe4QW5QQ8uI1cfR9zHCwZiXkXGJScSWAqIAb1RT18Mp6UFVmFJl8ZTgRn6n0N80F/R3wik2jU0svwYhoR+5x86hf+nRH5j2k1b8JY5H6zW07tMq+Roq+M5T0Lwk62gq+lbFj/QCaiTDV2K0NKAkgZpFz0TIe0Tg8PjPVY5U26s/5fCrqm8V8=----ATTACHMENT:----NDg4NjU0NTA0OTU4NjQyMiA1NTYzMjU3MzQ0ODYzNjk1IDk4NzEzMDczNDExMTQwMDY=