<?php
require_once('../../Loader/Module.php');
use Falcraft\Loader;
use Falcraft\Components\File;
echo "Falcraft\\Data\\Loader\\Module.php Test\n";
echo "--------------------------------------\n\n";
echo "Basic Instantiation -- \n";
echo " Instantiation (path1, firstModule) -> ";
$success = true;
$top = $path1 = null;
try {
$path1 = 'first/module/path';
$top = new Loader\Module($path1, 'firstModule');
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo "Additional Instantiation -- \n";
$success = true;
$child1 = $child2 = $child3 = null;
$path2 = $path3 = $path4 = null;
try {
echo " Instantiate Paths (2, 3, 4) -> ";
$path2 = 'second/module/path';
$path3 = 'third/module/path';
$path4 = 'fourth/module/path';
echo "Success!\n";
echo " Instantiation (path2, subModule1) -> ";
$child1 = new Loader\Module($path2, 'subModule1');
echo "Success!\n";
echo " Instantiation (path3, subModule2) -> ";
$child2 = new Loader\Module($path3, 'subModule2');
echo "Success!\n";
echo " Instantiation (path4, subModule3) -> ";
$child3 = new Loader\Module($path4, 'subModule3');
echo "Success!\n";
} catch (\Exception $e) {
$success = false;
}
if (!$success) {
echo "EXCEPTION RAISED\n\n";
}
echo "\nBasic Operations -- \n";
echo " Add subModule1 to firstModule -> ";
$success = true;
try {
$top->addModule($child1, $child1->getIdentifier());
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
$paths = Loader\Module::getModuleIdentityPaths($top);
echo "Identity Paths: \n";
foreach ($paths as $path) {
echo " $path\n";
}
echo "\n Add subModule3 to subModule1 -> ";
$success = true;
try {
$child1->addModule($child3, $child3->getIdentifier());
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
$paths = Loader\Module::getModuleIdentityPaths($top);
echo "Identity Paths: \n";
foreach ($paths as $path) {
echo " $path\n";
}
echo "\n Add subModule2 to firstModule -> ";
$success = true;
try {
$top->addModule($child2, $child2->getIdentifier());
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
$paths = Loader\Module::getModuleIdentityPaths($top);
echo "Identity Paths: \n";
foreach ($paths as $path) {
echo " $path\n";
}
echo " Retrieve As Array (root firstModule) -> ";
$success = true;
$folders = null;
try {
$folders = Loader\Module::getAsArray($top);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($folders);
echo "\n Retrieve Using Data (path2) -> ";
$success = true;
$ret = null;
try {
$ret = Loader\Module::pathBelongsTo($path2, $top);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! Identifier: $ret\n";
} else {
echo "Failure...\n";
}
echo " Retrieve Using Data (path3) -> ";
$success = true;
$ret = null;
try {
$ret = Loader\Module::pathBelongsTo($path3, $top);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! Identifier: $ret\n";
} else {
echo "Failure...\n";
}
echo " Get From Path (firstModule/subModule2) -> ";
$success = true;
unset($ret);
$ret = null;
try {
$ret = Loader\Module::getFromModuleIdentityPath($top, 'firstModule/subModule2');
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! Identifier: {$ret->getIdentifier()}\n";
} else {
echo "Failure...\n";
}
unset($ret);
echo " Add To Module Identity Path (path5, subModule4) -- \n";
$success = true;
$granchild2 = null;
try {
echo " Instantiate subModule4 -> ";
$grandchild2 = new Loader\Module('path/to/last/module', 'subModule4');
echo "Success!\n";
echo " Add to Path (firstModule/subModule2) -> ";
Loader\Module::addToModuleIdentityPath(
$top,
'firstModule/subModule2',
$grandchild2,
$grandchild2->getIdentifier()
);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
$paths = Loader\Module::getModuleIdentityPaths($top);
echo "Identity Paths: \n";
foreach ($paths as $path) {
echo " $path\n";
}
echo "\n";
|