/**
  * @dataProvider getUnit
  */
 public function testTranslationCreation(Unit $unit)
 {
     $t = new Translation(self::TRANSLATION1, self::LOCALE1, $unit);
     $this->assertEquals(self::TRANSLATION1, $t->getValue());
     $this->assertEquals(self::LOCALE1, $t->getLocale());
     $this->assertEquals($unit, $t->getUnit());
     $this->assertEquals(self::DOMAIN, $t->getDomain());
     $this->assertEquals(self::KEY, $t->getKey());
 }
 /**
  * Update this object from a ModelTranslation
  *
  * @param ModelTranslation $translation
  */
 public function updateFromModel(ModelTranslation $translation)
 {
     $this->setLocale($translation->getLocale());
     $this->setValue($translation->getValue());
     $this->setMetadata($translation->getMetadata());
 }
 public function saveTranslation(Translation $translation)
 {
     // Fetch the related unit
     $propelUnit = UnitQuery::create()->findOneByDomainAndKey($translation->getUnit()->getDomain(), $translation->getUnit()->getKey());
     // Retrived or create the translation
     $propelTranslationToUpdate = null;
     foreach ($propelUnit->getTranslations() as $propelTranslation) {
         if ($propelTranslation->getLocale() == $translation->getLocale()) {
             $propelTranslationToUpdate = $propelTranslation;
             break;
         }
     }
     if ($propelTranslationToUpdate === null) {
         $propelTranslationToUpdate = new PropelTranslation();
         $propelTranslationToUpdate->setUnitId($propelUnit->getId());
     }
     // Update and save
     $propelTranslationToUpdate->updateFromModel($translation);
     $propelTranslationToUpdate->save();
 }