public function testExport()
 {
     $collection = new MockMessageCollectionForExport();
     /**
      * @var FileBasedMessageGroup $group
      */
     $group = MessageGroupBase::factory($this->groupConfiguration);
     $ffs = new AmdFFS($group);
     $data = $ffs->writeIntoVariable($collection);
     $parsed = $ffs->readFromVariable($data);
     $this->assertEquals(array('Nike the bunny'), $parsed['AUTHORS'], 'Authors are exported');
     $this->assertArrayHasKey('fuzzymsg', $parsed['MESSAGES'], 'fuzzy message is exported');
     $this->assertArrayHasKey('translatedmsg', $parsed['MESSAGES'], 'translated message is exported');
     if (array_key_exists('untranslatedmsg', $parsed['MESSAGES'])) {
         $this->fail('Untranslated messages should not be exported');
     }
 }
 /**
  * @param array $data
  * @return array Parsed data.
  */
 public function readFromVariable($data)
 {
     $authors = AmdFFS::extractAuthors($data);
     $data = AmdFFS::extractMessagePart($data);
     $messages = (array) FormatJson::decode($data, true);
     $metadata = array();
     // Take care of regular language bundles, as well as the root bundle.
     if (isset($messages['root'])) {
         $messages = $this->group->getMangler()->mangle($messages['root']);
     } else {
         $messages = $this->group->getMangler()->mangle($messages);
     }
     return array('MESSAGES' => $messages, 'AUTHORS' => $authors, 'METADATA' => $metadata);
 }