| 
<?php
 /* SOME TESTS ARE MEANT TO FAIL!
 If the entire script runs, it works. */
 
 require_once('../../../Data/Types/Leaf.php');
 
 use Falcraft\Data\Types;
 
 echo "Falcraft\\Data\\Types\\Leaf.php Test\n";
 echo "---------------------------------\n\n";
 
 echo "Instantiation -- \n";
 
 echo "    Basic Empty -> ";
 
 $success = true;
 
 $testLeaf = null;
 
 try {
 $testLeaf = new Types\Leaf();
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "    Instantiation With Improper Values -> ";
 
 $fail = true;
 
 $testLeaf = $testArray = null;
 
 try {
 $testArray = array(5, 'notLeaf', 'what?' => 'delicious',);
 $testLeaf = new Types\Leaf($testArray);
 $fail = false;
 } catch (\Exception $e) {
 
 }
 
 if ($fail) {
 echo "Failure!\n";
 } else {
 echo "Success...\n";
 }
 
 echo "    Instantiation With Proper Values -> ";
 
 $success = true;
 
 $testLeaf = $testArray = null;
 
 try {
 $testArray = array(new Types\Leaf(), new Types\Leaf(), new Types\Leaf());
 $testLeaf = new Types\Leaf($testArray);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "\nReset\n";
 echo "-----\n\n";
 
 unset($testLeaf);
 unset($testArray);
 
 echo "New Leaf -> ";
 
 $success = true;
 
 $testLeaf = null;
 $testIdentifier = null;
 
 try {
 $testLeaf = new Types\Leaf();
 $testIdentifier = $testLeaf->getIdentifier();
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success! Identifier: $testIdentifier\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Altering Leaf Prefix (root) and adding -> ";
 
 $success = true;
 
 $testLeaf1 = $testIdentifier1 = null;
 $testLeaf2 = $testIdentifier2 = null;
 $testIdentifier3 = null;
 
 try {
 $testLeaf1 = new Types\Leaf();
 $testIdentifier1 = $testLeaf->getIdentifier();
 $testLeaf2 = new Types\Leaf(array(), array('prefix' => 'Root',));
 $testIdentifier2 = $testLeaf2->getIdentifier();
 $testIdentifier3 = $testLeaf1->addLeaf($testLeaf2);
 } catch (\Exception $e) {
 $success = false;
 }
 
 if ($success) {
 echo "Success!\n";
 echo "    identifier1: $testIdentifier1\n";
 echo "    identifier2: $testIdentifier2\n";
 echo "    identifier3: $testIdentifier3\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Did $identifier3 Generate? ";
 
 $success = false;
 
 try {
 $success = $testLeaf1->isLeaf($identifier3);
 } catch (\Exception $e) {
 
 }
 
 if ($success) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 echo "Data Setting and Retrieval -> ";
 
 $d = 5;
 
 try {
 $testLeaf1->setData($d);
 $d = 10;
 $d = $testLeaf1->getData();
 } catch (\Exception $e) {
 $d = 0;
 }
 
 if ($d == 5) {
 echo "Success!\n";
 } else {
 echo "Failure...\n";
 }
 
 
 |