/**
  * @since 2.4
  *
  * @param DataValue $dataValue
  *
  * @return DataValueFormatter
  */
 public function getDataValueFormatterFor(DataValue $dataValue)
 {
     if ($this->dispatchingDataValueFormatter === null) {
         $this->dispatchingDataValueFormatter = $this->newDispatchingDataValueFormatter();
     }
     return $this->dispatchingDataValueFormatter->getDataValueFormatterFor($dataValue);
 }
 public function testTryToGetDataValueFormatterForNonDispatchableDataValueThrowsException()
 {
     $dataValueFormatter = $this->getMockBuilder('\\SMW\\DataValues\\ValueFormatters\\DataValueFormatter')->disableOriginalConstructor()->getMockForAbstractClass();
     $dataValueFormatter->expects($this->once())->method('isFormatterFor')->will($this->returnValue(false));
     $dataValue = $this->getMockBuilder('\\SMWDataValue')->disableOriginalConstructor()->getMockForAbstractClass();
     $instance = new DispatchingDataValueFormatter();
     $instance->addDataValueFormatter($dataValueFormatter);
     $this->setExpectedException('RuntimeException');
     $instance->getDataValueFormatterFor($dataValue);
 }