<?php
require_once( __DIR__ . '/../../Event/Conduit.php' );
require_once( __DIR__ . '/../../Event/Filter.php' );
require_once( __DIR__ . '/../../Event/Handler.php' );
require_once( __DIR__ . '/../../Event/HandlerPriorityQueue.php' );
require_once( __DIR__ . '/../../Event/GenericEvent.php' );
require_once( __DIR__ . '/../../Patterns/Publisher.php' );
use Falcraft\Event;
use Falcraft\Patterns;
echo "Falcraft\\Event\\Conduit.php Test\n";
echo "-------------------------------\n\n";
echo "Basic Instantiation -- \n";
echo " Empty Instantiation (1) -> ";
$success = true;
$conduit1 = null;
try {
$conduit1 = new Event\Conduit();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Instantiaton With Filter and Handler -- \n";
$success = true;
$filter = $handlerz = null;
try {
echo " Instantiate Empty Filter -> ";
$filter = new Event\Filter();
echo "Success!\n";
echo " Instantiate Handler (Z) -> ";
$handlerz = new Event\Handler(
null,
function($e){echo "Inside Handler Z\n";},
null,
Event\Handler::DEFAULT_PRIORITY,
array('strict' => true)
);
echo "Success!\n";
} catch (\Exception $e) {
$success = false;
}
if (!$success) {
echo "EXCEPTION RAISED\n\n";
}
echo "\n Instantiate Conduit (2) -> ";
$success = true;
$conduit2 = null;
try {
$conduit2 = new Event\Conduit(
array($filter, $handlerz),
array(),
array('strict' => true)
);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Instantiate with Publishers Also -- \n";
$success = true;
$publisher1 = $publisher2 = $publisher3 = null;
try {
echo " Instantiate Publisher1 -> ";
$publisher1 = new Patterns\Publisher();
echo "Success!\n";
echo " Instantiate Publisher2 -> ";
$publisher2 = new Patterns\Publisher();
echo "Success!\n";
echo " Instantiate Publisher3 -> ";
$publisher3 = new Patterns\Publisher();
echo "Success!\n";
} catch (\Exception $e) {
$success = false;
}
if (!$success) {
echo "EXCEPTION RAISED\n\n";
}
echo " Instantiate Conduit (3) -> ";
$success = true;
$conduit3 = null;
try {
$conduit3 = new Event\Conduit(
array(array($filter, $handlerz)),
array($publisher1, $publisher2, $publisher3,),
array('strict' => true)
);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Remove Publisher1 and Publisher3 from Conduit 3 -> ";
$success = true;
try {
$conduit3->removePublisher($publisher1);
$conduit3->removePublisher($publisher3);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Prepare 2 Queues & Filters in Conduit -- \n";
$success = true;
$handler1 = $handler2 = $handler3 = $handler4 = $handler5 = $handler6 = null;
$queue1 = $queue2 = null;
try {
echo " Instantiate Handlers 1 - 3 and Queue 1 -> ";
$handler1 = new Event\Handler(
null,
function($e){echo "Inside Handler 1\n";},
null,
1,
array('strict' => true)
);
$handler2 = new Event\Handler(
null,
function($e){echo "Inside Handler 2\n";},
null,
0.5,
array('strict' => true)
);
$handler3 = new Event\Handler(
null,
function($e){echo "Inside Handler 3\n";},
null,
0.3,
array('strict' => true)
);
$queue1 = new Event\HandlerPriorityQueue(array($handler1, $handler2, $handler3,));
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
try {
echo " Instantiate Handlers 4 - 6 and Queue 2 -> ";
$handler4 = new Event\Handler(
null,
function($e){echo "Inside Handler 4\n";},
null,
Event\Handler::DEFAULT_PRIORITY,
array('strict' => true)
);
$handler5 = new Event\Handler(
null,
function($e){echo "Inside Handler 5\n";},
null,
Event\Handler::DEFAULT_PRIORITY,
array('strict' => true)
);
$handler6 = new Event\Handler(
null,
function($e){echo "Inside Handler 6\n";},
null,
Event\Handler::DEFAULT_PRIORITY,
array('strict' => true)
);
$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) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo "Basic Operations -- \n";
echo " Event Firing -- \n";
echo " Insantiate Events (event2 -> tag1, event3 -> tag2)-> ";
$success = true;
try {
$event1 = new Event\GenericEvent(
null,
null,
null,
null
);
$event2 = new Event\GenericEvent(
null,
null,
null,
null,
null,
array('tag1')
);
$event3 = new Event\GenericEvent(
null,
null,
null,
null,
null,
array('tag2')
);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Fire Publisher 1 (Event1) -- ";
$success = true;
try {
$publisher1->setState($event1);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Fire Publisher 2 (Event2) -- ";
$success = true;
try {
$publisher2->setState($event2);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Remove Publisher 2 from Conduit 3 -> ";
$success = true;
try {
$conduit3->removePublisher($publisher2);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Fire Publisher 2 (Event2) -- ";
$success = true;
try {
$publisher2->setState($event2);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo " Fire Publisher 3 (Event3) -- ";
$success = true;
try {
$publisher3->setState($event3);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
|