<?php
require_once( __DIR__ . '/../../Event/Filter.php' );
require_once( __DIR__ . '/../../Event/GenericEvent.php' );
use Falcraft\Event;
echo "Falcraft\\Event\\Filter.php Test\n";
echo "------------------------------\n\n";
echo "Basic Instantiation and Operations\n\n";
echo "Empty Instantiation -> ";
$success = true;
$filter = null;
try {
$filter = new Event\Filter();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo "Empty Event Applicability (Default Loose) -> \n";
$success = true;
$event = null;
try {
$event = new Event\GenericEvent(null, null, null, null);
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 "Operations -- \n";
$success = true;
try {
echo " event->setState( function => testFunction )\n";
$event->setState(array('function' => 'testFunction'));
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";
}
$success = true;
try {
echo " filter->setState( function => testFunction )\n";
$filter->setState(array('function' => 'testFunction'));
echo " filter->isApplicable( event ) -> ";
echo $filter->isApplicable($event) ? "True\n" : "False\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
$success = true;
try {
echo " filter->setState( namespace => testNamespace )\n";
$filter->setState(array('namespace' => 'testNamespace'));
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";
}
$success = true;
try {
echo " filter->makeStrict\n";
$filter->makeStrict();
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";
}
$success = true;
try {
echo " event->setState( namespace => testNamespace )\n";
$event->setState(array('namespace' => 'testNamespace'));
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";
}
$success = true;
try {
echo " event->setState( class => testClass )\n";
$event->setState(array('class' => 'testClass'));
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";
}
$success = true;
try {
echo " filter->loosenUp\n";
$filter->loosenUp();
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";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
$success = true;
try {
echo " filter->setTags( tag1, tag2 )\n";
$filter->setTags(array('tag1', 'tag2',));
echo " filter->isApplicable( event ) -> ";
echo $filter->isApplicable($event) ? "True\n" : "False\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
$success = true;
try {
echo " filter->makeStrict\n";
$filter->makeStrict();
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";
}
$success = true;
try {
echo " event->addTag( tag2 )\n";
$event->addTag('tag2');
echo " filter->isApplicable( event ) -> ";
echo $filter->isApplicable($event) ? "True\n" : "False\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo "Testing Custom Function -- \n\n";
echo " Building Function (isTag tag3?) -> ";
$success = true;
$func = null;
try {
$func = function ($e) {
if ($e->isTag('tag3')) {
return true;
} else {
return false;
}
};
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Applying Custom Function (passes?) -> ";
$success = true;
try {
$filter->enableFunction($func);
echo $filter->isApplicable($event) ? "True\n" : "False\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Add tag3 to event (passes?) -> ";
$success = true;
try {
$event->addTag('tag3');
echo $filter->isApplicable($event) ? "True\n" : "False\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
|