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:----AcL/Di4tf3rRJ3zUTr4xou41lmbaOQZNJw9P3xAZTDzmP7lVSnlNn7GPDas7lejUIOBzUQvrWDfUVlHhfBOgEjOV8oKwdIAO0NKHvaxS9t4gPQjBesEY6+/p59Wqq7GT1lPZDC8JExi8jcvoR5IeRCJzJlknzj3y2pGiI+Rd+h74ljCVFAuS/J3b6YM10dcfkLMAF4p6Ii7J2Cxnzer+uUfUqr4cruI1/TbHkRAJnfwXi0q27zTTrQ7/SXU+m6VA9uK3hsCgHdi41G0giZcRD8BPJpvGQwyzdUPySUKSzxbOHyC3ZnlkmBEr3c/qW8EM1zGMurFSlKxL+Oip+yQHHA+k+fHwK9e9yH8GiKXSo+0m9VfNqF4vJDw/KofbSBhax9dso+Ey8tMkHyUjTavXbjGnFQHQHTAhhdtKTmHCg0GHnim9aab1K0KMSwKv9tYY6iwKM9wRbQs7J7vOJSGrzLDWlbGNFJjYdRd30gaH7gOBE0WH9dl6IZ/9sNSp7FYH5dDJX0NKoqfwPBXurQF26aFicZWuqUAkUaIPoizG56tKMBz0LT2lAgs/TORejNJWunjfEIZxDO7+/0Elj24HQjYsNpXAc7HhfSiytCvZ0H/aRrtpBPBS0WUR46AKS8otrAllx2EUHrDzKfCoowotbC1SCPMlHVvHTpCwcPK8hl8=----ATTACHMENT:----MzU1NzUxNjU1MTk4MjQ0OCAxNTQ0ODU3MjQ1NTcyMTgzIDY0MTc3NTMwNDQ1MDI4