<?php
require_once('../../../Data/Types/Type.php');
require_once('../../../Data/Types/Restrictions.php');
require_once('../../../Data/Types/RestrictedQueue.php');
use Falcraft\Data\Types;
use Falcraft\Data\Types\Type;
echo "Falcraft\\Data\\Types\\RestrictedQueue.php Test\n";
echo "--------------------------------------------\n\n";
echo "Various Instantiations -> \n";
echo " \$testRestrictions = new Types\\Restrictions(array(Type::BASIC_INT)) -> ";
$success = true;
$testRestrictions = null;
try {
$testRestrictions = new Types\Restrictions(array(Type::BASIC_INT));
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " \$testRestrictedQueue = new Types\\RestrictedQueue() -> ";
$success = true;
$testRestrictedQueue = null;
try {
$testRestrictedQueue = new Types\RestrictedQueue();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " \$testRestrictedQueue = new Types\\RestrictedQueue(null, null, array('strict' => true)) -> ";
$success = true;
$testRestrictedQueue = null;
try {
$testRestrictedQueue = new Types\RestrictedQueue(null, null, array('strict' => true));
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " \$testRestrictedQueue = new Types\\RestrictedQueue(
null,
new Types\Restrictions(array(Type::BASIC_INT)),
array('strict' => true)) -> ";
$success = true;
$testRestrictedQueue = null;
try {
$testRestrictedQueue = new Types\RestrictedQueue(
null,
new Types\Restrictions(array(Type::BASIC_INT)),
array('strict' => true));
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " \$testRestrictedQueue = new Types\RestrictedQueue(
array(1, 2, 3, 'string',),
\$testRestrictions) -> ";
$fail = true;
$testRestrictedQueue = null;
try {
$testRestrictedQueue = new Types\RestrictedQueue(
array(1, 2, 3, 'string',),
$testRestrictions);
$fail = false;
} catch (\Exception $e) {
}
if ($fail) {
echo "Failure!\n";
} else {
echo "Success...\n";
}
echo " \$testRestrictedQueue = new Types\RestrictedQueue(
array(1, 2, 3, 'string',),
\$testRestrictions,
array('strict' => true)) -> ";
$fail = true;
$testRestrictedQueue = null;
try {
$testRestrictedQueue = new Types\RestrictedQueue(
array(1, 2, 3, 'string',),
$testRestrictions,
array('strict' => true));
$fail = false;
} catch (\Exception $e) {
}
if ($fail) {
echo "Failure!\n";
} else {
echo "Success...\n";
}
echo " \$testRestrictedQueue = new Types\RestrictedQueue(
array(1, 2, 3, 4, 5,),
\$testRestrictions,
array('strict' => true)) -> ";
$success = true;
$testRestrictedQueue = null;
try {
$testRestrictedQueue = new Types\RestrictedQueue(
array(1, 2, 3, 4, 5,),
$testRestrictions,
array('strict' => true));
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success\n";
} else {
echo "Failure...\n";
}
echo "\nQueue Operations --\n\n";
echo "Instantiate Queue 2 and Push (1) -> ";
$success = true;
$testRestrictedQueue2 = null;
try {
$testRestrictedQueue2 = new Types\RestrictedQueue(array(), $testRestrictions);
$testRestrictedQueue2->push(1);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
echo "Queue Internals -- \n\n";
var_dump($testRestrictedQueue2->getList());
echo "\n";
} else {
echo "Failure...\n";
}
echo "Push Queue 1 (6, 7, 8) -> ";
$success = true;
try {
$testRestrictedQueue->push(6, 7, 8);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
echo "Queue Internals -- \n\n";
var_dump($testRestrictedQueue->getList());
echo "\n";
} else {
echo "Failure...\n";
}
echo "Top -> ";
$success = true;
$val = null;
try {
$val = $testRestrictedQueue->top();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! ($val)\n";
} else {
echo "Failure...\n";
}
echo "Pop -> ";
$success = true;
$val = null;
try {
$val = $testRestrictedQueue->pop();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! ($val)\n";
} else {
echo "Failure...\n";
}
class testObject {
public $publicProp;
}
$obj = new testObject();
$obj->publicProp = 3;
$testRestrictedQueueReference = new Types\RestrictedQueue(
array(),
new Types\Restrictions(array(Type::TYPED_OBJECT), array('testObject')),
array('strict' => true));
echo "Push Reference -> ";
$success = true;
//try {
$testRestrictedQueueReference->pushReference($obj);
//} catch (\Exception $e) {
// $success = false;
//}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo "Test Reference: ";
$success = true;
try {
$obj->publicProp = 5;
echo "\n"; var_dump($testRestrictedQueueReference->getList()); echo "\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo "BottomReference -> ";
$success = true;
$val = null;
try {
$obj->publicProp = 7;
$val = $testRestrictedQueueReference->bottomReference();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! ({$val->publicProp})\n";
} else {
echo "Failure...\n";
}
echo "PopReference -> ";
$success = true;
$val = null;
try {
$obj->publicProp = 11;
$val = $testRestrictedQueueReference->popReference();
} catch(\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! ({$val->publicProp})\n";
} else {
echo "Failure...\n";
}
echo "Testing Array Functionality -- \n";
echo " ( [] ) -> ";
$success = true;
try {
$testRestrictedQueue[] = 12;
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
echo "Queue Internals --\n\n";
var_dump($testRestrictedQueue->getList());
echo "\n";
} else {
echo "Failure...\n";
}
echo " ( [3] = 20 ) -> ";
$success = true;
try {
$testRestrictedQueue[3] = 20;
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
echo "Queue Internals --\n\n";
var_dump($testRestrictedQueue->getList());
echo "\n";
} else {
echo "Failure...\n";
}
echo "Queue Roll Operations -- \n\n";
echo " Pre-Roll -> \n\n";
var_dump($testRestrictedQueue->getList());
echo "\n";
echo " ::roll(2) -> ";
$success = true;
try {
$testRestrictedQueue->roll(2);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
echo "Queue Internals --\n\n";
var_dump($testRestrictedQueue->getList());
echo "\n";
} else {
echo "Failure...\n";
}
echo " ::roll(-5) -> ";
$success = true;
try {
$testRestrictedQueue->roll(-5);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
echo "Queue Internals --\n\n";
var_dump($testRestrictedQueue->getList());
echo "\n";
} else {
echo "Failure...\n";
}
|