| 
<?php
 namespace Falcraft\Tests\Data\Types;
 
 // Connects/stores vertices implementing interface
 require_once('../../../Data/Types/Enumeration.php');
 
 use Falcraft\Data\Types;
 
 echo "Falcraft\\Data\\Types\\Enumeration.php Test\n";
 echo "----------------------------------------\n\n";
 
 echo "Build Enumerator via Object Methods -> ";
 
 $success = true;
 
 $testEnum = null;
 
 try {
 $testEnum = new Types\Enumeration('testEnumerationClass', array(
 'TEST1' => 1,
 'TEST2' => 2,)
 );
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "\nConstants of Enumerator Instantiated -> \n";
 var_dump($testEnum->getConstants());
 
 echo "\nAdding Additional Constants ('ADD1', 'ADD2', 'REM') -> ";
 
 $additionalConstants = false;
 
 try {
 $additionalConstants = array('ADD1' => 3, 'ADD2' => 4, 'REM' => 5);
 $testEnum->addConstants($additionalConstants);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "\nConstants of Enumerator Instantiated -> \n";
 var_dump($testEnum->getConstants());
 
 echo "\nRemove Constant ('REM') -> ";
 
 $success = true;
 
 try {
 $testEnum->removeConstant('REM');
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "\nConstants of Enumerator Instantiated -> \n";
 var_dump($testEnum->getConstants());
 
 echo "\nSet Erroneous Default ('REM') -> ";
 
 $fail = true;
 
 try {
 $t = $testEnum->setDefault('REM');
 } catch (\Exception $e) {
 $fail = false;
 }
 
 if ($fail) {
 echo "Failure!\n";
 } else {
 echo "Success...\n";
 }
 
 echo "Set Correct Defaul ('ADD2') -> ";
 
 $success = true;
 
 try {
 $t = $testEnum->setDefault('ADD2');
 if (!$t) {
 $success = false;
 }
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Access Default Value -> ";
 
 $success = true;
 
 $default = $defaultValue = null;
 
 try {
 $default = $testEnum->getDefault();
 $defaultValue = $testEnum->getDefaultValue();
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success! $default ($defaultValue)\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Establish Namespace -> ";
 
 $success = true;
 
 $namespace = null;
 
 try {
 $testEnum->setNamespace('Falcraft\\Tests\\Data\\Types');
 $namespace = $testEnum->getNamespace();
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success! $namespace\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Bake Enumeration -> ";
 
 $success = true;
 
 try {
 $testEnum->bake();
 } catch (\Exception $e) {
 $success - false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Change Enumeration After Baking -> ";
 
 $fail = true;
 
 try {
 $testEnum->removeConstant('ADD1');
 $fail = false;
 } catch (\Exception $e) {
 
 }
 
 if ($fail) {
 echo "Failure!\n";
 } else {
 echo "Success...\n";
 }
 
 echo "Enumeration Internals -> \n\n";
 
 var_dump($testEnum);
 
 echo "\nUsing An Enumerator (ADD1) ->";
 
 $success = true;
 
 $test = null;
 
 try {
 $test = testEnumerationClass::ADD1;
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success! ($test)\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Independent Enumerator Generation -> ";
 
 $fail = true;
 
 $testRebakeEnum = null;
 
 try {
 echo "    Same Qualifier: ";
 $testRebakeEnum = new Types\Enumeration('testEnumerationClass', array(
 'REBAKE1' => 1,
 'REBAKE2' => 2,)
 );
 
 $testRebakeEnum->setNamespace('Falcraft\\Tests\\Data\\Types');
 $fail = false;
 } catch (\Exception $e) {
 $fail = true;
 }
 
 if ($fail) {
 echo "Failure!\n";
 } else {
 echo "Success...\n";
 }
 
 echo "Generate Instance From Enumeration Instance -> ";
 
 $success = true;
 
 $enumeratedValue = null;
 
 try {
 $enumeratedValue = $testEnum->getInstance(testEnumerationClass::ADD2);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n\n";
 var_dump($enumeratedValue);
 echo "\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Generate Instance From Enumeration Class -> ";
 
 $success = true;
 
 $enumeratedValue = null;
 
 try {
 $enumeratedValue = Types\Enumeration::createEnumeration(
 'Falcraft\\Tests\\Data\\Types\\testEnumerationClass'
 );
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n\n";
 var_dump($enumeratedValue);
 echo "\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Generate Instance From Generated Class -> ";
 
 $success = true;
 
 $enumeratedValue = null;
 
 try {
 $enumeratedValue = new testEnumerationClass();
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n\n";
 var_dump($enumeratedValue);
 echo "\n";
 } else {
 echo "Failure...\n\n";
 }
 
 |