public function testFetchCachedConversionData()
 {
     $container = $this->getMockBuilder('\\Onoi\\BlobStore\\Container')->disableOriginalConstructor()->getMock();
     $container->expects($this->any())->method('has')->will($this->onConsecutiveCalls(false, true));
     $blobStore = $this->getMockBuilder('\\Onoi\\BlobStore\\BlobStore')->disableOriginalConstructor()->getMock();
     $blobStore->expects($this->exactly(2))->method('read')->will($this->returnValue($container));
     $blobStore->expects($this->once())->method('save');
     $cachedPropertyValuesPrefetcher = $this->getMockBuilder('\\SMW\\CachedPropertyValuesPrefetcher')->disableOriginalConstructor()->getMock();
     $cachedPropertyValuesPrefetcher->expects($this->atLeastOnce())->method('getBlobStore')->will($this->returnValue($blobStore));
     $cachedPropertyValuesPrefetcher->expects($this->once())->method('getPropertyValues')->will($this->returnValue(array($this->dataItemFactory->newDIBlob('Foo'))));
     $numberValue = new NumberValue();
     $instance = new UnitConversionFetcher($numberValue, $cachedPropertyValuesPrefetcher);
     $property = $this->dataItemFactory->newDIProperty('Foo');
     $instance->fetchCachedConversionData($property);
     // Cached
     $instance->fetchCachedConversionData($property);
 }
 /**
  * This method initializes $m_unitfactors, $m_unitids, and $m_mainunit.
  */
 protected function initConversionData()
 {
     if ($this->m_unitids !== false) {
         return;
         // do the below only once
     }
     $unitConversionFetcher = new UnitConversionFetcher($this);
     $unitConversionFetcher->fetchCachedConversionData($this->m_property);
     if ($unitConversionFetcher->getErrors() !== array()) {
         foreach ($unitConversionFetcher->getErrors() as $error) {
             $this->addErrorMsg($error, Message::TEXT, Message::USER_LANGUAGE);
         }
     }
     $this->m_unitids = $unitConversionFetcher->getUnitIds();
     $this->m_unitfactors = $unitConversionFetcher->getUnitFactors();
     $this->m_mainunit = $unitConversionFetcher->getMainUnit();
     $this->prefixalUnitPreference = $unitConversionFetcher->getPrefixalUnitPreference();
 }