diff --git a/tests/Assets/InvokableEventHandler.php b/tests/Assets/InvokableEventHandler.php new file mode 100644 index 0000000..0b133f8 --- /dev/null +++ b/tests/Assets/InvokableEventHandler.php @@ -0,0 +1,17 @@ +number = $number; + } + + public function __invoke(string $save) + { + echo "$save {$this->number}\n"; + } +} diff --git a/tests/MagicEventCallbacksTest.php b/tests/MagicEventCallbacksTest.php index 0a3f0a0..0cb54cd 100644 --- a/tests/MagicEventCallbacksTest.php +++ b/tests/MagicEventCallbacksTest.php @@ -42,10 +42,9 @@ public function testAddingEventHandlersAndTriggeringEvent() ob_start(); $MagicEvent->onSave('Save'); - $output = ob_get_clean(); + $output = ob_get_contents(); + ob_end_clean(); $this->assertEquals("Save 1\nSave 2\nSave 3\n", $output); } - - } diff --git a/tests/MagicEventInvokableClassTest.php b/tests/MagicEventInvokableClassTest.php new file mode 100644 index 0000000..a68c28d --- /dev/null +++ b/tests/MagicEventInvokableClassTest.php @@ -0,0 +1,45 @@ +getTraits(); + + $this->assertArrayHasKey(Magic::class, $traits); + } + + public function testOnSavePropertyExists() + { + $this->assertPropertyExists(MagicEvent::class, 'onSave'); + } + + public function testAddingEventHandlersAndTriggeringEvent() + { + $MagicEvent = new MagicEvent; + $MagicEvent->onSave[] = new InvokableEventHandler(1); + $MagicEvent->onSave[] = new InvokableEventHandler(2); + $MagicEvent->onSave[] = new InvokableEventHandler(3); + + ob_start(); + $MagicEvent->onSave('Save'); + $output = ob_get_contents(); + ob_end_clean(); + + $this->assertEquals("Save 1\nSave 2\nSave 3\n", $output); + } +}