Пример #1
0
 public function testModelEventing()
 {
     $example = new Example();
     $d = 0;
     $e = 0;
     $f = 0;
     $example->attachEventHandler("Test", function ($a, $b, $c) use(&$d, &$e, &$f) {
         $d = $a;
         $e = $b;
         $f = $c;
     });
     $example->SimulateRaiseEvent("Test", 1, 2, 3);
     $this->assertEquals(6, $d + $e + $f);
     $product = 0;
     ModelEventManager::attachEventHandler("Example", "Test", function ($model, $x, $y, $z) use(&$product) {
         $product = $x * $y * $z;
     });
     $example->SimulateRaiseEvent("Test", 1, 2, 3);
     $this->assertEquals(6, $product);
     $product = 0;
     $example->SimulateRaiseEventAfterSave("Test", 2, 3, 4);
     $this->assertEquals(0, $product);
     $example->save();
     $this->assertEquals(24, $product);
     $product = 0;
     $example->a = "b";
     $example->save();
     $this->assertEquals(0, $product);
 }