PHP Classes

File: src/Tools/ModuleGeneratorEnhanced/tests/final-test.php

Recommend this page to a friend!
  Packages of Adrian M   upMVC   src/Tools/ModuleGeneratorEnhanced/tests/final-test.php   Download  
File: src/Tools/ModuleGeneratorEnhanced/tests/final-test.php
Role: Example script
Content type: text/plain
Description: Example script
Class: upMVC
Pure PHP web development without other frameworks
Author: By
Last change:
Date: 2 months ago
Size: 4,173 bytes
 

Contents

Class file image Download
<?php
/**
 * Final Comprehensive Test for Enhanced Module Generator
 * Tests all module types to ensure complete functionality
 */

require_once 'ModuleGeneratorEnhanced.php';

echo
"? Final Comprehensive Test - Enhanced Module Generator\n";
echo
str_repeat("=", 60) . "\n\n";

// Test configurations for different module types
$testConfigs = [
    [
       
'name' => 'BasicTest',
       
'type' => 'basic',
       
'description' => 'A basic test module',
       
'fields' => [],
       
'features' => ['views', 'assets'],
       
'submodules' => false,
       
'middleware' => false
   
],
    [
       
'name' => 'CrudTest',
       
'type' => 'crud',
       
'description' => 'A CRUD test module',
       
'fields' => [
            [
'name' => 'title', 'type' => 'string', 'required' => true],
            [
'name' => 'price', 'type' => 'decimal', 'required' => true],
            [
'name' => 'active', 'type' => 'boolean', 'required' => false]
        ],
       
'features' => ['views', 'assets', 'api', 'search'],
       
'submodules' => true,
       
'middleware' => true
   
],
    [
       
'name' => 'ApiTest',
       
'type' => 'api',
       
'description' => 'An API test module',
       
'fields' => [
            [
'name' => 'endpoint', 'type' => 'string', 'required' => true]
        ],
       
'features' => ['api'],
       
'submodules' => false,
       
'middleware' => true
   
]
];

$results = [];

foreach (
$testConfigs as $index => $config) {
    echo
"? Test " . ($index + 1) . ": {$config['name']} ({$config['type']})\n";
    echo
str_repeat("-", 40) . "\n";
   
    try {
       
// Create configuration array
       
$generatorConfig = [
           
'name' => $config['name'],
           
'type' => $config['type'],
           
'description' => $config['description'],
           
'fields' => $config['fields'],
           
'use_middleware' => $config['middleware'],
           
'create_submodules' => $config['submodules']
        ];
       
       
$generator = new \Tools\ModuleGeneratorEnhanced\ModuleGeneratorEnhanced($generatorConfig);
       
       
// Generate module
       
$result = $generator->generate();
       
        if (
$result) {
            echo
"? Module '{$config['name']}' generated successfully!\n";
           
$results[$config['name']] = 'PASS';
           
           
// Check if main files exist
           
$moduleDir = "../../modules/{$config['name']}";
           
$requiredFiles = ['Controller.php', 'Model.php', 'View.php', 'routes/Routes.php'];
           
            foreach (
$requiredFiles as $file) {
                if (
file_exists("$moduleDir/$file")) {
                    echo
" ? $file exists\n";
                } else {
                    echo
" ? $file missing\n";
                   
$results[$config['name']] = 'PARTIAL';
                }
            }
           
        } else {
            echo
"? Module '{$config['name']}' generation failed!\n";
           
$results[$config['name']] = 'FAIL';
        }
       
    } catch (
Exception $e) {
        echo
"? Error: " . $e->getMessage() . "\n";
       
$results[$config['name']] = 'ERROR';
    }
   
    echo
"\n";
}

// Summary
echo str_repeat("=", 60) . "\n";
echo
"? Test Results Summary:\n";
echo
str_repeat("=", 60) . "\n";

foreach (
$results as $module => $status) {
   
$icon = match($status) {
       
'PASS' => '?',
       
'PARTIAL' => '??',
       
'FAIL' => '?',
       
'ERROR' => '?'
   
};
    echo
"$icon $module: $status\n";
}

$passCount = count(array_filter($results, fn($status) => $status === 'PASS'));
$totalCount = count($results);

echo
"\n? Overall Results: $passCount/$totalCount tests passed\n";

if (
$passCount === $totalCount) {
    echo
"? All tests passed! Enhanced Module Generator is ready for production use.\n";
} else {
    echo
"?? Some tests failed. Please review the results above.\n";
}

echo
"\n? To clean up test modules, run:\n";
echo
"Remove-Item -Path '../../modules/BasicTest' -Recurse -Force\n";
echo
"Remove-Item -Path '../../modules/CrudTest' -Recurse -Force\n";
echo
"Remove-Item -Path '../../modules/ApiTest' -Recurse -Force\n";
?>