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:----BUbQuV8Yw5XWbC6aO1GM8DVzH6WAFjz3VWT0tEcTm4R8RANUxeUGAFKhpi4D9YV7sQzaxqwebZjCAFUCTX51GuBfaCrqM4e2EPm1TmTiDfpPk0zNxDLWJBFcusSM38Eo7355x5UMSGAVC96v+zg75YCSKaBMkDE7peYI4EWPCE34+NB0n3EhKheDnk2yULqwsOKSCD52rZrEr/2U96SAPtXZLZZE3o6rRpuYIaUyDu1MEdaYg9J+RRAmr+yKZO6HsN5HhwxmpMklwkXVIMeLQely2YlDg71D+XdjCfV51sBx+XGN5hDz9zEGzejwBGRa4ij6SWL4xKQY0+CCAgq4/tuUt2fX2YeghidMjKbzS8dR7ALij5Pa69yZbx63A8bXpSgBnsHqAwCK7C7m9oT3Eb/BL3fMsjCADWmqy7oLAxJXzB6W5iLrPbubY5f1roS+5E5k4rxmFH/owU03fZimolO6+EyDqaNb9Q3DCi5nOtYRf7SAe7HnxocDBNya39XD8/RhDzf8ArN5sME2s/azOmSsOx8nNEC8R9TYmJMGfZjTVF+kd8bl8UxmKevPARlKtCH771aFRJvM64102iljjLWJEamJEJ0E0lQIDGW1vz48u6Lkg9jvpDxbhCeyCp861d1ZfAsO04Jx3Rhm3pY4NK+4rq4m8T5b3X4yHpOswV4=----ATTACHMENT:----MzMyOTc2MTAzMzM0ODg1MyA0MjE0OTYwMDY1NDM2NTggNDk4NzM0MTI4NTkxNjI3Nw==