/**
  * Generates the HTML for a Reference object.
  *
  * @param Reference $reference
  *
  * @return string HTML
  */
 private function getHtmlForReference(Reference $reference)
 {
     $snaks = $reference->getSnaks();
     $referenceSnaksByProperty = new ByPropertyIdGrouper($snaks);
     $snaklistviewsHtml = '';
     foreach ($referenceSnaksByProperty->getPropertyIds() as $propertyId) {
         $snaklistviewsHtml .= $this->getSnaklistviewHtml($referenceSnaksByProperty->getByPropertyId($propertyId));
     }
     return $this->templateFactory->render('wikibase-referenceview', 'wikibase-referenceview-' . $reference->getHash(), $snaklistviewsHtml);
 }
 /**
  * @dataProvider provideHasPropertyId
  */
 public function testHasPropertyId(array $propertyIdProviders, $propertyId, $expectedValue)
 {
     $byPropertyIdGrouper = new ByPropertyIdGrouper($propertyIdProviders);
     $this->assertEquals($expectedValue, $byPropertyIdGrouper->hasPropertyId(new PropertyId($propertyId)));
 }