| 
<?php
 require_once( __DIR__ . '/../../Event/HandlerPriorityQueue.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\\HandlerPriorityQueue.php Test\n";
 echo "--------------------------------------------\n\n";
 
 echo "Basic Instantiation -- \n";
 echo "    Empty Instantiation -> ";
 
 $success = true;
 
 $queue = null;
 
 try {
 $queue = new Event\HandlerPriorityQueue();
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n\n";
 } else {
 echo "Failure...\n\n";
 }
 
 echo "Operations -- \n";
 echo "    Push Several Handlers -> ";
 
 $handler = null;
 
 try {
 $handler = new Event\Handler(
 null,
 function ($e) {echo "  2\n";},
 null,
 2,
 array('strict' => true)
 );
 
 $queue->push($handler);
 
 $handler = new Event\Handler(
 null,
 function ($e) {echo "  1\n";},
 null,
 1,
 array('strict' => true)
 );
 
 $queue->push($handler);
 
 $handler = new Event\Handler(
 null,
 function ($e) {echo "  0\n";},
 null,
 0,
 array('strict' => true)
 );
 
 $queue->push($handler);
 
 $handler = new Event\Handler(
 null,
 function ($e) {echo "  A\n";},
 null,
 1.5,
 array('strict' => true)
 );
 
 $queue->push($handler);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "    Fire! -> \n";
 
 $success = true;
 
 $publisher = $event = null;
 
 try {
 $publisher = new Patterns\Publisher();
 
 $publisher->attachListener($queue);
 
 $event = new Event\GenericEvent(
 null,
 null,
 null,
 null
 );
 
 $publisher->setState($event);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n\n";
 } else {
 echo "Failure...\n\n";
 }
 
 |