| 
<?php
 require_once( __DIR__ . '/../../Event/Actor.php' );
 require_once( __DIR__ . '/../../Event/Filter.php' );
 require_once( __DIR__ . '/../../Event/Handler.php' );
 require_once( __DIR__ . '/../../Event/GenericEvent.php' );
 require_once( __DIR__ . '/../../Patterns/Publisher.php' );
 
 use Falcraft\Event;
 use Falcraft\Patterns;
 
 echo "Falcraft\\Event\\Actor.php Test\n";
 echo "-----------------------------\n\n";
 
 echo "Basic Instantiation -- \n\n";
 
 $success = true;
 
 $handler = $filter = $event1 = $event2 = $publisher = $actor = null;
 
 try {
 echo "    Instantiate Handler With Closure -> ";
 $handler = new Event\Handler(
 null,
 function($e){echo "Inside Closure";},
 null,
 Event\Handler::DEFAULT_PRIORITY,
 array('strict' => true)
 );
 
 echo $handler ? "Success!\n" : "Failure...\n";
 
 echo "    Instantiate Filter (filter => tag1) -> ";
 $filter = new Event\Filter();
 $filter->setState(array('tags' => array('tag1',),));
 
 echo $filter ? "Success!\n" : "Failure...\n";
 
 echo "    Instantiate Generic Events (Event1 => tag1) -> ";
 $event1 = new Event\GenericEvent(
 null,
 null,
 null,
 null,
 null,
 array('tag1')
 );
 
 $event2 = new Event\GenericEvent(null, null, null, null);
 
 echo ($event1 && $event2) ? "Success!\n" : "Failure...\n";
 
 echo "    Instantiate Publisher -> ";
 $publisher = new Patterns\Publisher();
 
 echo $publisher ? "Success!\n" : "Failure...\n";
 
 echo "    Instantiate Actor ( filter, handler, publisher ) -> ";
 $actor = new Event\Actor($filter, $handler, $publisher);
 
 echo $actor ? "Success!\n" : "Failure...\n";
 
 } catch (\Exception $e) {
 $success = false;
 }
 
 if (!$success) {
 echo "EXCEPTION RAISED\n";
 }
 
 echo "\nBasic Operations -- \n\n";
 
 $success = true;
 
 try {
 echo "    Fire Event1 -> ";
 $publisher->setState($event1);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if (!$success) {
 echo "EXCEPTION RAISED\n";
 }
 
 $success = true;
 
 try {
 echo "\n    Fire Event2 -> ";
 $publisher->setState($event2);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if (!$success) {
 echo "EXCEPTION RAISED\n";
 }
 
 echo "\n";
 
 |