Example #1
0
 public function run($test)
 {
     $parser = new SpecificationParser();
     $testSpec = $parser->parse($test);
     $testSpec->setEventDispatcher($this->getEventDispatcher());
     try {
         return $testSpec->run();
     } catch (TestExecutionException $e) {
         $newEx = new TestExecutionException('Test failed: ' . $testSpec->getFile() . ' on line ' . $testSpec->getStartLine() . "\n" . get_class($e) . ': ' . $e->getMessage(), 0, $e);
         throw $newEx;
     }
 }
Example #2
0
        $res = mkdir($target_dir, '755', true);
        if ($res == false) {
            die('could not create gen directory');
        }
    }
}
checkDirExists($diagram_loc);
echo "===========================================\n";
echo "===========================================\n";
foreach ($file_list as $file) {
    $path_parts = pathinfo($file);
    $className = $path_parts['filename'];
    echo "Processing {$className} \n";
    $interfaceName = $className . 'State';
    $abstractClassName = 'Abstract' . $interfaceName;
    $parser = new SpecificationParser($file);
    $operations = $parser->getOperations();
    $queries = $parser->getQueries();
    $states = $parser->getStates();
    $conf_namespace = $parser->getNamespace();
    $namespace = $conf_namespace . $className;
    $use = str_replace('\\', '_', '\\' . $namespace);
    ob_start();
    echo 'digraph ' . $use . ' {' . PHP_EOL;
    foreach ($states as $state => $data) {
        foreach ($data['transitions'] as $operation => $to) {
            echo '"' . $state . '" -> "' . $to . '" [ color=blue, label = "' . $operation . '"];' . PHP_EOL;
        }
    }
    echo '}' . PHP_EOL;
    $output = ob_get_contents();
Example #3
0
    }
}
if ($file_list == false) {
    echo "Error: your _defs directory is invalid\n";
    echo "===========================================\n";
    return false;
}
echo "===========================================\n";
echo "===========================================\n";
foreach ($file_list as $file) {
    $path_parts = pathinfo($file);
    $className = $path_parts['filename'];
    echo "Processing {$className} \n";
    $interfaceName = $className . 'State';
    $abstractClassName = 'Abstract' . $interfaceName;
    $parser = new SpecificationParser($file);
    $conf_namespace = $parser->getNamespace();
    $namespace = $conf_namespace . '\\' . $className;
    $test_namespace = $namespace . '\\test';
    // the use string for the test cases
    $use = '\\' . $namespace . '\\' . $className;
    $conf_target_dir = $parser->getTargetDir();
    $target_dir = $base_dir . '/' . $conf_target_dir . '/' . $className . '/';
    $target_test_dir = $target_dir . '/test/';
    checkDirExists($target_dir);
    checkDirExists($target_test_dir);
    $operations = $parser->getOperations();
    $queries = $parser->getQueries();
    $states = $parser->getStates();
    $generator = new InterfaceGenerator();
    $generator->generate($namespace, $operations, $interfaceName, $target_dir);
Example #4
0
#!/usr/bin/env php
<?php 
if (!file_exists(__DIR__ . '/../vendor/autoload.php')) {
    die('You need to set up the project dependencies using the following commands:' . PHP_EOL . 'wget https://getcomposer.org/composer.phar' . PHP_EOL . 'php composer.phar install' . PHP_EOL);
}
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/autoload.php';
$parser = new SpecificationParser(new SpecificationFilename());
$className = $parser->getClassName();
$abstractClassName = $parser->getAbstractClassName();
$interfaceName = $parser->getInterfaceClassName();
$operations = $parser->getOperations();
$queries = $parser->getQueries();
$states = $parser->getStates();
$generator = new InterfaceGenerator();
$generator->generate($operations, $interfaceName);
$generator = new AbstractStateClassGenerator();
$generator->generate($operations, $abstractClassName, $interfaceName);
$generator = new ClassGenerator();
$generator->generate($operations, $states, $className, $interfaceName);
$codeGenerator = new StateClassGenerator();
$testGenerator = new TestGenerator();
foreach ($states as $state => $data) {
    $codeGenerator->generate($data, $state, $abstractClassName);
    $testGenerator->generate($data, $operations, $queries, $states, $state, $className, $abstractClassName);
}