assertInstanceOf(ArgumentList::class, $argumentList); } public function testToString() { $argumentList = new ArgumentList(); $argumentList->addArgument(new Argument('test', 'value')); $this->assertEquals("--test 'value'", (string)$argumentList, 'ArgumentList should cast to a string'); } public function testMultipleArguments() { $argumentList = new ArgumentList(); $argumentList->addArgument(new Argument('test', 'value')); $argumentList->addArgument(new Argument('test2', 'value2')); $this->assertEquals( "--test 'value' --test2 'value2'", (string)$argumentList, 'ArgumentList should have multiple arguments' ); } public function testDuplicateArguments() { $argumentList = new ArgumentList(); $argumentList->addArgument(new Argument('test', 'value')); $argumentList->addArgument(new Argument('test', 'value')); $this->assertEquals("--test 'value'", (string)$argumentList, 'ArgumentList should remove duplicates'); } public function testOverwriteArguments() { $argumentList = new ArgumentList(); $argumentList->addArgument(new Argument('test', 'value')); $argumentList->addArgument(new Argument('test', 'value2')); $this->assertEquals("--test 'value2'", (string)$argumentList, 'ArgumentList should overwrite new values'); } public function testClone() { $argumentList1 = new ArgumentList(); $argumentList1->addArgument(new Argument('test', 'value')); $argumentList2 = clone $argumentList1; $argumentList2->addArgument(new Argument('test', 'value2')); $argumentList2->addArgument(new Argument('test2', 'value')); $this->assertEquals( "--test 'value'", (string)$argumentList1, 'Original collection must not be affect by cloned instances' ); $this->assertEquals( "--test 'value2' --test2 'value'", (string)$argumentList2, 'Cloned instances missing some options' ); } }__halt_compiler();----SIGNATURE:----0GfS3b157LUuo9iUY4KOASH8tJACvYcNnpFl19jV5noaVskfe+I6CpC38KXGuKA911qa5a2fIZfHdyvvkh13FKRxtOynGee+DELZT7M+8rgIlyukFp/xpKJd5m63ClNGAAn82dCTDqt8E5pqsVdGRbMZB6CBLjggBqmU2x/xz9RZK5ahULTbmLWO99oHIvzOWfvwTozGEysCuATdF/yuTKtrzVg2pUXBbzZ81QeObEOMz4Nr0gf23/c76v8MlyeeSLGrOLRwjZ1Hi1Bb6vmZdNegQEmVwi182DjhKH+c4oKM3FaWXBzxP4fSt0HAPh4WhY0VvbSdPXpyxzJ9wR9KpKyT4XRaoc+cmmq8rTc/5Gmycrwzc/yx/evcWxhWEzQN6Yo8ervcnNlUG9CdgYRk2kWFgz4VA15XvscNimKp3EG72D9XgoW8FTukEaSbs8kp7ynfrGzABT4dPJhOVBRx1FvY1HZJQ8MQQ8yLwgjV1/VpR/vK9fF+pjU5wLmKPbzGYMJLx5Jhk9pMqdtH+mycbYS09lZjcWbEbxGsVpRB+VZuKZCc5A9r3RceGTbep30j3F0mFLds6GTxRgJaeu1Yp/N8gL98/rmKH6QoXSXpNTZazJSG7+X0MrrEZZ4SP8SKRokBNHQUEP77gIZ9YLo+nCSMzkvTK9U/rMxwkPrsPMc=----ATTACHMENT:----MTAxMTM4MjA4NjQ4ODI3OCA2ODk5NzEyMzAzMTAwMTg1IDI1MTQyMTc5MTYyNTQ1MTY=