/**
  * Stores a context.
  *
  * This method stores the context that it received to the backend specified
  * storage place.
  *
  * @throws ezcTranslationWriterNotInitializedException when the writer is
  *         not initialized with initWriter().
  * @param string $context The context's name
  * @param array(ezcTranslationData)  $data The context's translation map
  * @return void
  */
 public function storeContext($context, array $data)
 {
     if (is_null($this->writeLocale)) {
         throw new ezcTranslationWriterNotInitializedException();
     }
     foreach ($data as $key => $cachedElement) {
         if ($cachedElement->status == ezcTranslationData::OBSOLETE) {
             unset($data[$key]);
         }
     }
     $cachedContext = $this->cache->store("{$this->writeLocale}/{$context}", $data);
 }
 public function testOptions()
 {
     $obj = new ezcCacheStorageFileArray($this->createTempDir(__CLASS__));
     $options = new ezcCacheStorageFileOptions();
     $optionsGeneral = new ezcCacheStorageOptions();
     $this->assertEquals($options, $obj->getOptions());
     $obj->options = $optionsGeneral;
     $this->assertEquals($options, $obj->getOptions());
     $obj->options = $options;
     $this->assertEquals($options, $obj->getOptions());
     $obj->setOptions($optionsGeneral);
     $this->assertEquals($options, $obj->getOptions());
     $obj->setOptions($options);
     $this->assertEquals($options, $obj->getOptions());
     try {
         $obj->setOptions('wrong value');
         $this->fail("Expected exception was not thrown.");
     } catch (ezcBaseValueException $e) {
         $this->assertEquals("The value 'wrong value' that you were trying to assign to " . "setting 'options' is invalid. Allowed values are: " . "instance of ezcCacheStorageFileOptions or (deprecated) " . "ezcCacheStorageOptions.", $e->getMessage());
     }
 }
 public function testMetaDataFailure()
 {
     $temp = $this->createTempDir(__CLASS__);
     $storage = new ezcCacheStorageFileArray($temp);
     $this->assertFalse(file_exists($storage->getLocation() . $storage->options->metaDataFile), 'Meta data file existed before the storage was created.');
     $restoredMeta = $storage->restoreMetaData();
     $this->assertNull($restoredMeta, 'Meta data not restored correctly.');
     $this->assertFalse(file_exists($storage->getLocation() . $storage->options->metaDataFile), 'Meta data file existed before the storage was created.');
     $this->removeTempDir();
 }