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);
 }
 private function newDispatchingDataValueFormatter()
 {
     $dispatchingDataValueFormatter = new DispatchingDataValueFormatter();
     $dispatchingDataValueFormatter->addDataValueFormatter(new ReferenceValueFormatter());
     $dispatchingDataValueFormatter->addDataValueFormatter(new MonolingualTextValueFormatter());
     $dispatchingDataValueFormatter->addDataValueFormatter(new CodeStringValueFormatter());
     // To be checked only after DispatchingDataValueFormatter::addDataValueFormatter did
     // not match any previous registered DataValueFormatters
     $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new PropertyValueFormatter());
     $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new StringValueFormatter());
     $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new NumberValueFormatter());
     $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new TimeValueFormatter());
     $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new NoValueFormatter());
     return $dispatchingDataValueFormatter;
 }