/**
  * Helper which inserts example data into the database.
  *
  * @param string $type
  * 
  */
 protected function insertExampleEntity($type = 'Generic')
 {
     switch ($type) {
         case 'Specific':
             $entity = new Fixture\Model\Specific();
             $repository =& $this->specificRepository;
             break;
         default:
             $entity = new Fixture\Model\Generic();
             $repository =& $this->genericRepository;
             break;
     }
     foreach ($this->data as $type => $values) {
         foreach ($values as $locale => $value) {
             if ($locale === 'default') {
                 $entity->setDefaultLocaleForTranslation();
             } else {
                 $entity->setLocaleForTranslation($locale);
             }
             $entity->{$type} = $value;
         }
     }
     $repository->add($entity);
     $this->persistenceManager->persistAll();
 }
 /**
  * Tests all data type against generic translation
  *
  * @param string $type
  * @param mixed $typeCheckFunction
  * @param mixed $value
  * @param mixed $translatedValue
  * @param string $language
  *
  * @test
  * @dataProvider getTranslationTypes
  */
 public function testOnGenericTranslation($type, $typeCheckFunction, $value, $translatedValue, $language = 'en-US')
 {
     $this->markTestIncomplete('This test has not been implemented yet with new feature.');
     $object = new Generic();
     $object->{$type} = $value;
     $object->setLocaleForTranslation($language)->{$type} = $translatedValue;
     if (is_callable($typeCheckFunction)) {
         $this->assertTrue(call_user_func($typeCheckFunction, $object->setLocaleForTranslation($language)->{$type}));
     }
     $this->assertEquals($object->setLocaleForTranslation($language)->{$type}, $translatedValue);
     $this->assertNotEquals($object->setLocaleForTranslation($language)->{$type}, $object->setDefaultLocaleForTranslation()->{$type});
 }