#!/usr/bin/env php
<?php
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../shared-bin.php';

use Symfony\Component\Finder\Finder;

$phpunitXml = new DOMDocument();
$phpunitXml->load(__DIR__ . '/../phpunit.xml');

$testFolders = [];

foreach (Finder::create()->in(__DIR__ . '/../packages')->directories()->depth(0) as $packageFolder) {
    $package = new Package($packageFolder);
    if ($package->getPackage() === 'fixtures') {
        continue;
    }
    $testFolders[] = $package->getTestFolder();
}

$nodeList = $phpunitXml->getElementsByTagName('testsuite');
foreach ($nodeList as $element) {
    while ($element->hasChildNodes()) {
        $element->removeChild($element->firstChild);
    }
    foreach ($testFolders as $testFolder) {
        $child = $element->ownerDocument->createElement('directory', $testFolder);
        $element->appendChild($child);
    }
}

$nodeList = $phpunitXml->getElementsByTagName('exclude');
foreach ($nodeList as $element) {
    while ($element->hasChildNodes()) {
        $element->removeChild($element->firstChild);
    }
    $child = $element->ownerDocument->createElement('directory', 'vendor');
    $child->setAttribute('suffix', '.php');
    $element->appendChild($child);
    sort($testFolders);
    foreach ($testFolders as $testFolder) {
        $child = $element->ownerDocument->createElement('directory', $testFolder);
        $child->setAttribute('suffix', '.php');
        $element->appendChild($child);
    }
}


$phpunitXml->save(__DIR__ . '/../phpunit.xml');

ComposerTools::runUpdate();
