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); }