/**
 * Convert Jackalope Document or System Views into PHPUnit DBUnit Fixture XML files
 *
 * @author Benjamin Eberlei <*****@*****.**>
 * @author cryptocompress <*****@*****.**>
 */
function generate_fixtures($srcDir, $destDir)
{
    foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($srcDir)) as $srcFile) {
        if (method_exists($srcFile, 'getExtension')) {
            $extension = $srcFile->getExtension();
        } else {
            // fallback for PHP <5.3.6
            $extension = pathinfo($srcFile, PATHINFO_EXTENSION);
        }
        if (!$srcFile->isFile() || $extension !== 'xml') {
            continue;
        }
        $srcDom = new \Jackalope\Test\Fixture\JCRSystemXML($srcFile->getPathname());
        $nodes = $srcDom->load()->getNodes();
        if ($nodes->length < 1) {
            continue;
        }
        $destDom = new \Jackalope\Test\Fixture\DBUnitFixtureXML(str_replace($srcDir, $destDir, $srcFile->getPathname()));
        $destDom->addDataset();
        $destDom->addWorkspace('tests');
        $destDom->addNamespaces($srcDom->getNamespaces());
        $destDom->addNodes('tests', $nodes);
        // delay this to the end to not add entries for weak refs to not existing nodes
        $destDom->addReferences();
        $destDom->save();
    }
}
/**
 * Convert Jackalope Document or System Views into PHPUnit DBUnit Fixture XML files
 *
 * @author Benjamin Eberlei <*****@*****.**>
 * @author cryptocompress <*****@*****.**>
 */
function generate_fixtures($srcDir, $destDir)
{
    foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($srcDir)) as $srcFile) {
        if (!$srcFile->isFile()) {
            continue;
        }
        $srcDom = new \Jackalope\Test\Fixture\JCRSystemXML($srcFile->getPathname());
        $nodes = $srcDom->load()->getNodes();
        if ($nodes->length < 1) {
            continue;
        }
        $destDom = new \Jackalope\Test\Fixture\DBUnitFixtureXML(str_replace($srcDir, $destDir, $srcFile->getPathname()));
        $destDom->addDataset();
        $destDom->addWorkspace('tests');
        $destDom->addNamespaces($srcDom->getNamespaces());
        $destDom->addNodes('tests', $nodes);
        // delay this to the end to not add entries for weak refs to not existing nodes
        $destDom->addReferences();
        $destDom->save();
    }
}