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:----lX7CSqOx/w2D/zXtbnntctJGEijjtFVWRcVexNlj2SpclA3YlQR5vWremXpoQR/xrTH3lzkDvlcVutWU5EmvdG4QzwsJ86laMNoYMcMsWrnoRigeGGqjTP+ij6GYtvvLdGI8X/wavZ6gA9TGP67eE0IZttZmkWhknQbJ1XxuodmYQa5n27T6ADmDumQihkb/MgN1UK02eux9qU9qDdkkELFVANYjyqONUl+ZsETzQeIpCWmainx8lKibWgT5HnsMOpaUCMgZcKmOnOWWDR3VNjtJf1LJAl6uBuJhOQgHSMua4z0/Ly2MvuRN8RZRWiEN6kNWc5w5Dzozv3wkrgcZTMZKGb6mfXDY+8w9dlSXg7g/hqmgArfuFlcchS5aI/AcRD9wHRDEzYqpY12O+L9157kZISoKgXBPC8UguUvnFF1qGD6LB2F72b/4nyz57D1n2t7nZsRz9CvkSYAWwtygfpkEovSocUBhlRTPaKMWwQQ2T46L3B689NpWXDmjgMDFMuwGPXxGuPJ3wDlSUR9A6HuNnWEuI1aWHHrdFwSFkVmpmkkkga1sOtKJ5EVvxfEo0FlmWN0XLJZMNEGGzM6bXjJi9u3+o6rZN4TkLu/5G4+vqbcoh+gj11VAKWJpSSITniUSxLE9AedMuThvBPq0iZRSJAr/XcNgVjULqwJskPU=----ATTACHMENT:----NDYxMzg2OTc1ODExNzUwMCA2NTg1MDI2MjEyOTgzOTU0IDI2NjE3MjI4NzUxNDEzMTU=