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:----Alsblyo54uyVKsNND1P+YzLHkLApm2X4d3TF9/tGpnL/UlBjyoIo8TPcs4Rab8/RXSfcaLVpJKvpJIICsNQCb84uesdUpD8+QIrPd9iV1z0MBvnKo+wz71cMEJP4JHS60XZOcmoCeRFQ0y+TAbQyVOnaYZ7T3Lr1YrBiS9BcWPTWmP/cC8COsBuI3w3ZTXcD/70fvom/OZ2RFOpA5sWqk97QpD3P/nhD2BV6rci1mojnoDfzIGMsgHACVHYtEOAXPrs5zYAxQRHiZTxkRSPMhrEytopur0i/5NT6/X6ML+4XtlxrrGZacFQ5y/eBKeuP+qXXxXmtFSMizuXjqj1rAeZdqImTxSHgWRCQ54QiZZyUykqHAX+poU7n/pMZo9AKQh7wtkuIA6iBnV3EmMd52/9iRsdQbD/YYPre5i968mQcZ68D1q5UEeL8pQka2/2gxg3u3834Fy846CT82kAGF4InFvnntdZoGL5Qk8aV6kvC7k3rmr2mYoDmFqtwSJ45NVB5MCQjyyNv0jeLiJjF06Am0H9VyFT/vQpeRolBn1P8KZyc1vxuHcpd1L+lc8ByXGH5nHZ7/dTmTk5pLZzbjtBl7S+lzgoX86DKiAKAK+mScrf8zz6PI6mR8PczgsLI/Y31sQ3nWYJSO5mgRTHQJuzqp4ygaZuRf/tliluNn9I=----ATTACHMENT:----NTU4NDAxMzI5OTYzMjI5OCA5Mjk4ODczNDk1ODg2NTY3IDEyNDg2Njc4OTQ1NTIzNDE=