assertInstanceOf(FlagList::class, $flagList); } public function testToString() { $flagList = new FlagList(); $flagList->addFlag(new Flag('f')); $this->assertEquals('-f', (string)$flagList, 'FlagList should cast to a string'); } public function testMultipleFlags() { $flagList = new FlagList(); $flagList->addFlag(new Flag('f')); $flagList->addFlag(new Flag('z')); $this->assertEquals('-f -z', (string)$flagList, 'FlagList should have multiple flags'); } public function testDuplicateFlags() { $flagList = new FlagList(); $flagList->addFlag(new Flag('f')); $flagList->addFlag(new Flag('f')); $this->assertEquals('-f', (string)$flagList, 'FlagList should remove duplicates'); } public function testClone() { $flagList1 = new FlagList(); $flagList1->addFlag(new Flag('f')); $flagList2 = clone $flagList1; $flagList2->addFlag(new Flag('f')); $this->assertEquals("-f", (string)$flagList1, 'Original collection must not be affect by cloned instances'); $this->assertEquals("-f -f", (string)$flagList2, 'Cloned instances missing some options'); } }__halt_compiler();----SIGNATURE:----UwBEUgp2SAq3w8VvLTTjFEAX+sH7XrykY5IOW1HQKFYDBY3rYhlPS6qUCCL14N1gNxHRMCOzIyGtaa6Mq2lH+D0V8JmaK8KnxRDsWa1QDa5kMNY6Lix73U10elgRyNEjLuU0ahryKrfPojETivamDgSJkg0/mlM2H2N7EiZsE7Qd2qiXVBS1SDQz706qDjFABFYL0JKj/icc4qLD0HLlKXx66LllSGWnbjwOEww9Q+iDbQwh4/7Qmx7mC1AxD/cbRCQl2GEJtLg3HQ5vC1GySX7BElp0Z6G7kbocOPPUdH5H/dBj75dUXkUqFylUbNevCk8bnQQuCnvX+bxlHcX+Fe/JcRvJRw2pbd4NP/HR+T72eXfgq5hg+3WeYweko5KoDYMGtlrbO43ckyItej7kwF7xIzPenfye4GuWegem3Mm5on/rhQoyxvJT/5c5WP8GJFqQcuYw57eYCO6mlA9zQoEOo94XpPXU+wCmVjMP9NDjBIxVHmxdCz8PcVvORszjZ0veQjasVg62CpedC/kNvY86mSkhcQxvlybS/BCO1ng7bN5FBumDcOzEvniduwHJd8RqzlpfPBYVD+oJCeYaGuCqji5f27K19lOryqUksD4Ocwof2eWPjx4RpgBN6jhPhVXdnGtwkdc7BIfTTAzgltdybknw1dmjzRyinb8Gp68=----ATTACHMENT:----OTkwMjQ1Nzc4MzIyMTc1NiA1NTM3MjA3MDcwMzQ4NTQ1IDI2OTA2OTU0NDA3NjkwNjc=