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:----FBC6cPUxp8tvtl4KmfaOIwtxwQMhivUSLF0nUxABf/GNZLCTCzMgbZtGwr4k8Ingh5b1HvcfqUr8vfkdf4Tz34fszJb4TGcfbOdMrUYT7T81QCpCMRHIS7hDgbGQNATk7mhBAcBDCWBWBS17QJkoPETM1YSgxeb1U4rdzNtj7dtHJcRqsrIGb3eE8Qh3KL33/2JcOmNk3dtfYUbSZBTK6VdHTq2uZtr/bY/aNehch8GVGGNnb5lCQw9roQpz3veGfbzZku/MHYErZoz+kiS3ytyvsqSnbn9B9fYduIoa9yABKqyPdsTk9nrPGrLkHwQhNNbAtSWSrdlGUWKH3UMsv41at1XOm3NV7g9oIY/RS/4OWsmhbl1ADuHEIYiNOY+OPdvJmmwn7YzO/MTZslMZBDtwYuqka12DtZMASQKtRlYGfukXQSGJIvjeiHjQpkSYVyC0yBnyQZYb9oQKwt62aPTcwigE3AobSq+m0+9M1d/WO/Gput373Qs/TkHVZLUJHMZqfTMToqkTb5LdQfs3v4M/cC55g9qY7MMkrNNLA/1jICKN4DBD8FjfXoKVupsPlNveFOQt8KiN/mKZfq1uQ/nYNeAi13gDc06IGgDV8o/m5rW/QPa+hhfC3H+fGzoLwJ0qWQFUR95LX52oBmmN0VNQ+wuDXcdYlBdTnReM8Rw=----ATTACHMENT:----NjAwMjEwMjM5ODQyMjgxMyA2NzcwOTMzODYxMTQxMTM5IDUzMDU4MjA2OTQ2OTUwOTY=