示例#1
0
 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);
 }