1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
<?php
declare(strict_types=1);
namespace Phing\Test\Task\System;
use Phing\Test\Support\BuildFileTest;
/**
* @author Mahmoud Al-Husseiny <mahmoud@alhusseiny.io>
*
* @internal
*/
class PhpEvalTaskTest extends BuildFileTest
{
protected function setUp(): void
{
$this->configureProject(PHING_TEST_BASE . '/etc/tasks/system/PhpEvalTest.xml');
}
public static function recursiveProcess(array $arr): string
{
// ensure n-d array (n > 1)
$isMultiDimArray = false;
foreach ($arr as $value) {
if (is_array($value) && !empty($value)) {
$isMultiDimArray = true;
break;
}
}
static::assertTrue(
$isMultiDimArray,
'You must provide a multidimensional array for this test'
);
$arraySum = '';
array_walk_recursive($arr, static function ($item) use (&$arraySum) {
$arraySum .= $item;
});
return $arraySum;
}
public function testZeroParams(): void
{
$expected = get_include_path();
$this->executeTarget(__FUNCTION__);
$this->assertPropertyEquals('result', $expected);
}
public function testOneScalarParam(): void
{
$expected = trim(' test ');
$this->executeTarget(__FUNCTION__);
$this->assertPropertyEquals('result', $expected);
}
public function testMultiScalarParams(): void
{
$expected = trim('##**test**##', '#');
$this->executeTarget(__FUNCTION__);
$this->assertPropertyEquals('result', $expected);
}
public function testArrayParam(): void
{
$expected = implode(['Phing', ' ', '3']);
$this->executeTarget(__FUNCTION__);
$this->assertPropertyEquals('result', $expected);
}
public function testMixedParams(): void
{
$expected = implode(' ', ['Phing', '3']);
$this->executeTarget(__FUNCTION__);
$this->assertPropertyEquals('result', $expected);
}
public function testStaticMethodWithMultiDimArrayParam(): void
{
$expected = static::recursiveProcess(['a', ['b', 'c'], 'd']);
$this->executeTarget(__FUNCTION__);
$this->assertPropertyEquals('result', $expected);
}
}
|