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:----mK/hWmfeJ1l4g26WuP+ZYMAEBG7yNoEq48TT+yNPobzI4Z0fnjjYypV9Nkw0rEz/fnrquSDcxeVYmQ//JlShcYGhCYvbsFdNIXVc1lT7vAnUKPra4ZZVyEDJI4z5n6vvJh4RX0zDMe/pNEr3XpsRn0oMzRSXfQedo99ckUzF8Ph++9+nVF+kzuUO60Ee4iZwoCYqlHyzHzrjcnocNouG8qEb0O61YyyRQU6l963K0HbUuoT+TFAQoN3pTEadh/tc8/538H1isbRaEKPw0XcodnbbyQpGW055rZjR7Z2MoYu2xPAuIQeU596uSLwTPllngC0ilv3xYlgS0vpFNoKnQDgD5/pptt1iDksqT06pe1qQMEetTIKxfQwnT8NCoruKrmTbdYfnsx8KElcBaDbrTtG+BUPxYCSrqmDnUA4Vys+VjqDSWBeJUD3FkKjn9xlCnLSCQE73eBI6AajfzBEXYvIvHyDXKkqOMd7i/mQudAtKV1mOEvneqta6WCTeoRkoYKk2Nsmnv462sa/H1svlfQvIDbyus99goLTZCJEisnMw5kueAI9O7jQpClEpAnEz1P+kRqfiCrxByyfHHSmcPkCWF+uO1zf2a4StjnTR6UCnXgPnXbvwTCmvIeA9n2H1yjFVyI1JntK1/TZP4YzX3ryV4F1JXgKhDMFCFxHcn9U=----ATTACHMENT:----MzgxOTIyMjgyMTQ4NTAyNSAyMjE5Mzg0NzE5OTk2NDkwIDI1NzEyNzU3MTEyNzUzMjk=