assertInstanceOf(ParamList::class, $paramList); } public function testToString() { $paramList = new ParamList(); $paramList->addParam(new Param('test')); $this->assertEquals("'test'", (string)$paramList, 'ParamList should cast to a string'); } public function testMultipleParams() { $paramList = new ParamList(); $paramList->addParam(new Param('hello')); $paramList->addParam(new Param('world')); $this->assertEquals("'hello' 'world'", (string)$paramList, 'ParamList should have multiple params'); } public function testDuplicateParams() { $paramList = new ParamList(); $paramList->addParam(new Param('test')); $paramList->addParam(new Param('test')); $this->assertEquals("'test' 'test'", (string)$paramList, 'ParamList should allow duplicates'); } public function testClone() { $paramList1 = new ParamList(); $paramList1->addParam(new Param('test')); $paramList2 = clone $paramList1; $paramList2->addParam(new Param('test')); $this->assertEquals( "'test'", (string)$paramList1, 'Original collection must not be affect by cloned instances' ); $this->assertEquals("'test' 'test'", (string)$paramList2, 'Cloned instances missing some options'); } }__halt_compiler();----SIGNATURE:----hto61KnZg2DG+BfSUiOQKKuhtOhsL9sKUFOZGpYQnTVSpqql5l63z69FUjD4KDEdXVqcm+/7uCmWB9C54CuqIgADZXQo179GOSkTTh8/YN7AuFe5oHWFm85ilhDxrltyIySfEXVozEtceOuy/1HtTWX1vzRs6SrtfsSLJBnDuwuit36X9oP+blq2ji2ncArr5KlvUcHDL6ksU5GJSn562lFB90Ia+wGVMUXXOEM3cHcYlSa19h+46GaIs1owzoyz0Z8c4e/CY2uDR2lGheos4OqWHp80Nvg5okuNw0FfBg5ufdKHMmKjh1Dm3gIMmMeuO3W4v32iOMR1VprVD2BkNAZta8mCwV+MI6ho7gg2lyeMzvsm6o8ZJBICOdQ2ozBSTDzU19jwtOMO3857GgGLyUGMhwNVC/q8v8vK4/JMbgljXg9dH5gvd9f7v35PPIOxhrh7AXyzFAJq98qqpRJWPri1VgcRS29EByil3p1LU3a/NyoxSmu+Z7VgpWXB4XVUULvq37I/rrUTOPONej7nvfvOAmUFBzLXJFMrJD64/EAaDwCYKA19rTdWkqtzi3scquABjK7jxgkDw0Mc/PdBuFsOsa+KQBfktU+QANT3tZTzELJQkjucXyWIiejKNwrHpN9XgtXeawk/yfT6rTy1YFNkbmq0XE+XVcl59Lpvea4=----ATTACHMENT:----MjI3Mjg3Njc5MjYzMDc0NCA1MzY2NDI1NTU0MDkxNTI2IDI0OTE3MTU5MTIxNzgyMTI=