<?php
require_once( __DIR__ . '/../../Event/Handler.php' );
require_once( __DIR__ . '/../../Event/GenericEvent.php' );
require_once( __DIR__ . '/../../Event/Tracker.php' );
use Falcraft\Event;
echo "Falcraft\\Event\\Handler.php Test\n";
echo "-------------------------------\n\n";
echo "Basic Instantiation -- \n";
echo " Instantiate With Closure -> ";
$success = true;
$handler = null;
try {
$handler = new Event\Handler(
null,
function ($e) {echo "Inside Closure";},
null,
Event\Handler::DEFAULT_PRIORITY,
array('strict' => true)
);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo "Basic Operation -- \n";
$success = true;
$publisher = $event = null;
try {
echo " publisher = new Tracker()\n";
$publisher = new Event\Tracker();
echo " event = new GenericEvent()\n";
$event = new Event\GenericEvent(
null,
null,
null,
null
);
echo " publisher->attachListener( handle )\n";
$publisher->attachListener($handler);
echo " publisher->triggerObject( event ) -> ";
$publisher->triggerObject($event);
echo "\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo "Additional Operations -- \n\n";
echo " Class Method -- \n";
$success = true;
try {
echo " Define Class A\n";
class A {
public static function staticFunction($e)
{
echo "Inside Static Function";
}
}
echo " handler->setObject( A ) \n";
$handler->setObject('A');
echo " handler->setNamespace( __NAMESPACE__ )\n";
$handler->setNamespace(__NAMESPACE__);
echo " handler->setFunction( staticFunction )\n";
$handler->setFunction('staticFunction');
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Fire! -> ";
$success = true;
try {
$publisher->setState($event);
echo "\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Object Method -- \n";
$success = true;
$object = null;
try {
echo " Define Class B\n";
class B extends A
{
public function publicMethod($e)
{
echo "Inside Public Method";
}
}
echo " object = new B\n";
$object = new B();
echo " handler->setObject( object )\n";
$handler->setObject($object);
echo " handler->setFunction( publicMethod )\n";
$handler->setFunction('publicMethod');
echo " handler->setNamespace( )\n";
$handler->setNamespace('');
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Fire! -> ";
$success = true;
try {
$publisher->setState($event);
echo "\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Function -- \n";
try {
echo " Define Function\n";
function func($e)
{
echo "Inside Function";
}
echo " handler->setFunction( func )\n";
$handler->setFunction('func');
echo " handler->setObject( null )\n";
$handler->setObject(null);
echo " handler->setNamespace( __NAMESPACE__ )\n";
$handler->setNamespace(__NAMESPACE__);
} catch (\Exception $e) {
$success = false;
}
echo "\n Fire! -> ";
$success = true;
try {
$publisher->setState($event);
echo "\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
|