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:----UEjNmkHZjuwq5ZStcakK+amO9/ZirCctUc8eE8tb7cXkaZVdh/qBqBQgRtcjeAGvOuukA2nU6BTosh2mbr/MZQ7EGqv9uBQgDS3PDS28J7+b5Idghk+DhX9gJbPSdwC/6ONggNsd/WEiHlCmnjIT3//xakCWhA6k/aRK3pL4Kmxb6krmhobj+qWun1wHDjV+BBdQmRij88tRquOrTvDUwl+0PmMZDIsnjnZJnR/AMW65/GCqxhT8noux7CrCy8dlkFawbcRAuNsthRVvq13ah1flt666so8PCZqZqaO3453pJ1sP1RiXR+fv2XxwBWRZP1/KvN+9Xv6Ug05ATm5UWNR3c6yO69L1mc+K207OQ1bUJTQjiBp74qqtSRevzKwGYeELxSO/bTe9UzeO4rGuwKxytTC4adBmGCFO1IcEeMyv6s9AjrN/97YwTuwFzLDnliGLoQ5lGIzG4+pF/8pJUEiwFUyhi0S4oftsbZCHurIictNrnB+dcGUEW/iWJTjsPDdOowNeexCoxixs8xJy7XJdzz3F/zeuDFJrN9aVBSzMaEK3sjK9tv0VEs/ENqsWTZc/AK0Qnu0YGJhIlK2wtnhdfyLIbQF/HDI3XVh4nqFOCq3uetDySH0OFibEs6ixqH7cezGqetgTmGhGWWJgrXChgY8NQkrwuNtR9rUAP6Y=----ATTACHMENT:----NTU4NDA1NzYyNTI5Mzc4NyA3ODk5NzczNzU0NDYwMzQgNzc1MjQxNzU3NjY0MDIwMg==