/**
  * @since 2.3
  *
  * @param DataValue $dataValue
  *
  * @return DescriptionDeserializer
  */
 public function getDescriptionDeserializerFor(DataValue $dataValue)
 {
     if ($this->dispatchingDescriptionDeserializer === null) {
         $this->dispatchingDescriptionDeserializer = $this->newDispatchingDescriptionDeserializer();
     }
     return $this->dispatchingDescriptionDeserializer->getDescriptionDeserializerFor($dataValue);
 }
 public function testTryToGetDescriptionDeserializerForNonDispatchableDataValueThrowsException()
 {
     $descriptionDeserializer = $this->getMockBuilder('\\SMW\\Deserializers\\DVDescriptionDeserializer\\DescriptionDeserializer')->disableOriginalConstructor()->getMockForAbstractClass();
     $descriptionDeserializer->expects($this->once())->method('isDeserializerFor')->will($this->returnValue(false));
     $dataValue = $this->getMockBuilder('\\SMWDataValue')->disableOriginalConstructor()->getMockForAbstractClass();
     $instance = new DispatchingDescriptionDeserializer();
     $instance->addDescriptionDeserializer($descriptionDeserializer);
     $this->setExpectedException('RuntimeException');
     $instance->getDescriptionDeserializerFor($dataValue);
 }