public function testAddAutoCommentArgs()
 {
     $summary = new Summary('summarytest');
     $summary->addAutoCommentArgs("one");
     $summary->addAutoCommentArgs(2, new ItemId('Q3'));
     $summary->addAutoCommentArgs(array("four", "five"));
     $expected = array('one', 2, new ItemId('Q3'), 'four', 'five');
     $this->assertEquals($expected, $summary->getCommentArgs());
 }
 /**
  * Format the autocomment part of a full summary. Note that the first argument is always the
  * number of summary arguments supplied via addAutoSummaryArgs() (or the constructor),
  * and the second one is always the language code supplied via setLanguage()
  * (or the constructor).
  *
  * @since 0.5
  *
  * @param Summary $summary
  *
  * @return string with a formatted comment, or possibly an empty string
  */
 public function formatAutoComment(Summary $summary)
 {
     $composite = $summary->getMessageKey();
     $summaryArgCount = count($summary->getAutoSummaryArgs());
     $commentArgs = array_merge(array($summaryArgCount, $summary->getLanguageCode()), $summary->getCommentArgs());
     //XXX: we might want to use different formatters for autocomment and summary.
     $parts = $this->formatArgList($commentArgs);
     $joinedParts = implode('|', $parts);
     if ($joinedParts !== '') {
         $composite .= ':' . $joinedParts;
     }
     return $composite;
 }