public function testCompressAndPackageEasybook()
 {
     // setup temp dir for generated ZIP file
     $app = new Application();
     $tmpDir = $app['app.dir.cache'] . '/' . uniqid('phpunit_', true);
     $filesystem = new Filesystem();
     $filesystem->mkdir($tmpDir);
     $compressor = new Compressor();
     ob_start();
     $compressor->build($tmpDir . '/easybook-package.zip');
     $commandOutput = ob_get_contents();
     ob_end_clean();
     $this->assertRegExp('/\\d{3} files added/', $commandOutput);
     $this->assertRegExp('/easybook-package.zip \\(.* MB\\) package built successfully/', $commandOutput);
     // tear down the temp directories
     $filesystem->remove($tmpDir);
 }
Exemple #2
0
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
require __DIR__ . '/../../vendor/autoload.php';
use Easybook\Util\Compressor;
// check that this command is executed from the root directory
if ('app/Bin/build.php' != $argv[0]) {
    throw new \RuntimeException(sprintf("\n[ERROR] This command can only be executed from the root directory as follows:\n\n%s\n\n", '$ php app/Bin/build.php'));
}
echo "\nBuilding easybook ZIP file\n" . str_repeat('=', 80) . "\n";
// update vendors
echo "\n > Updating vendors ('composer update' command)\n";
$output = array();
$status = null;
exec('composer update', $output, $status);
if (0 !== $status) {
    throw new \RuntimeException(sprintf("\n[ERROR] There was an error updating vendors:\n%s\n\n", implode("\n", $output)));
}
// execute tests
echo "\n > Executing test suite ('phpunit' command)\n";
$output = array();
$status = null;
exec('phpunit', $output, $status);
if (0 !== $status) {
    throw new \RuntimeException(sprintf("\n[ERROR] There was an error executing tests:\n%s\n\n", implode("\n", $output)));
}
// build ZIP file
echo "\n > Building the ZIP file\n";
$compressor = new Compressor();
$compressor->build();