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; }
$queue2 = new Event\HandlerPriorityQueue(array($handler4, $handler5, $handler6)); } catch (\Exception $e) { $success = false; } if ($success) { echo "Success!\n"; } else { echo "Failure...\n"; } echo " Instantiate Filter 1 (tag1) and Filter 2 (tag2) -> "; $success = true; $filter1 = $filter2 = null; try { $filter1 = new Event\Filter(); $filter1->setState(array('tags' => array('tag1'))); $filter2 = new Event\Filter(); $filter2->setState(array('tags' => array('tag2'))); } catch (\Exception $e) { $success = false; } if ($success) { echo "Success!\n"; } else { echo "Failure...\n"; } echo " Instantiate Conduit (4) With Filters, Queues, and Publishers -> "; $success = true; $conduit4 = null; try { $conduit4 = new Event\Conduit(array(array($filter1, $queue1), array($filter2, $queue2)), array($publisher1, $publisher2, $publisher3), array('strict' => true)); } catch (\Exception $e) {
try { echo " Fire Publisher2 with Event2 -> "; $publisher2->setState($event2); } catch (\Exception $e) { $success = false; } if ($success) { echo " Success!\n\n"; } else { echo " Failure...\n\n"; } echo " Filter -- \n"; $success = true; try { echo " Instantiate Filter (tag1) -> "; $filter = new Event\Filter(); $filter->setState(array('tags' => array('tag1'))); echo $filter ? "Success!\n" : "Failure...\n"; echo " Set Filter on Aggregate -> "; $aggregator->setFilter($filter); echo "Success!\n"; } catch (\Exception $e) { $success = false; } $success = true; try { echo " Fire Publisher2 with Event2 -> "; $publisher2->setState($event2); echo "\n Fire Publisher2 with Event1 -> "; $publisher2->setState($event1); echo "\n";
echo " filter->isApplicable( event ) -> "; echo $filter->isApplicable($event) ? "True\n" : "False\n"; } catch (\Exception $e) { $success = false; } if ($success) { echo "Success!\n\n"; } else { echo "Failure...\n\n"; } echo "Tags and Categories -- \n"; echo " Reset Filter and Event -> "; $success = true; $filter = $event = null; try { $filter = new Event\Filter(); $event = new Event\GenericEvent(null, null, null, null); } catch (\Exception $e) { $success = false; } if ($success) { echo "Success!\n\n"; } else { echo "Failure...\n"; } $success = true; try { echo " event-addTag( tag1 )\n"; $event->addTag('tag1'); echo " filter->isApplicable( event ) -> "; echo $filter->isApplicable($event) ? "True\n" : "False\n";