private function _check(WithEmbeddedArrayI18NModel $model, $data)
 {
     foreach ($data as $i => $field) {
         foreach ($field as $code => $title) {
             $msg = sprintf("When model key is `%d` and language is `%s`", $i, $code);
             $model->setLang($code);
             $this->assertSame($title, $model->pages[$i]->title, $msg);
         }
     }
 }
 public function testIfEventWillPropagateAndRevokeSave()
 {
     $model = new WithEmbeddedArrayI18NModel();
     $m1 = new ModelWithI18N();
     $m2 = new ModelWithI18NSecond();
     $model->pages[] = $m1;
     $model->page = $m2;
     $triggered1 = false;
     $triggered2 = false;
     $beforeSave1 = function (ModelEvent $event) use(&$triggered1) {
         $triggered1 = true;
         $event->isValid = false;
     };
     $beforeSave2 = function (ModelEvent $event) use(&$triggered2) {
         $triggered2 = true;
         $event->isValid = false;
     };
     Event::on($m1, EntityManagerInterface::EventBeforeSave, $beforeSave1);
     Event::on($m2, EntityManagerInterface::EventBeforeSave, $beforeSave2);
     $saved = $model->save();
     $this->assertFalse($saved);
     $this->assertTrue($triggered1);
     $this->assertTrue($triggered2);
 }