Skip to content

Commit

Permalink
Convert ParseFilterTest to PHPUnit
Browse files Browse the repository at this point in the history
  • Loading branch information
totten committed Jul 21, 2022
1 parent dbb8802 commit bddc5a1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 47 deletions.
23 changes: 23 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<phpunit backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
cacheResult="false"
bootstrap="vendor/autoload.php"
>
<testsuites>
<testsuite name="UpgradeTest Utility Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>

<filter>
<whitelist>
<directory suffix=".php">./src</directory>
</whitelist>
</filter>
</phpunit>
64 changes: 17 additions & 47 deletions tests/ParseFilterTest.php
Original file line number Diff line number Diff line change
@@ -1,56 +1,26 @@
<?php
namespace Civi\UpgradeTest;

require_once dirname(__DIR__) . '/vendor/autoload.php';
global $assertionCount;
$assertionCount = ['ok' => 0, 'fail' => 0];
class ParseFilterTest extends \PHPUnit\Framework\TestCase {

function assertEquals($expected, $actual, $message = '') {
global $assertionCount;

if (is_array($expected)) {
ksort($expected);
}
if (is_array($actual)) {
ksort($actual);
}

if ($expected != $actual) {
fwrite(STDERR, $message . var_export(['Values are not equals', 'expected' => $expected, 'actual' => $actual], 1));
$assertionCount['fail']++;
}
else {
$assertionCount['ok']++;
public function testMisc() {
$this->assertFilterExpr(['minVer' => '', 'maxVer' => '4.5', 'maxCount' => NULL], '@4.5');
$this->assertFilterExpr(['minVer' => '', 'maxVer' => '4.5', 'maxCount' => '13'], '@4.5:13');
$this->assertFilterExpr(['minVer' => '', 'maxVer' => '4.5.2', 'maxCount' => NULL], '@4.5.2');
$this->assertFilterExpr(['minVer' => '4.5.2', 'maxVer' => NULL, 'maxCount' => NULL], '@4.5.2..');
$this->assertFilterExpr(['minVer' => '4.6.alpha1', 'maxVer' => NULL, 'maxCount' => NULL], '@4.6.alpha1..');
$this->assertFilterExpr(['minVer' => '4.5.2', 'maxVer' => NULL, 'maxCount' => '7'], '@4.5.2..:7');
$this->assertFilterExpr(['minVer' => '4.3.1', 'maxVer' => '4.6', 'maxCount' => NULL], '@4.3.1..4.6');
$this->assertFilterExpr(['minVer' => '4.3', 'maxVer' => '4.6.10', 'maxCount' => NULL], '@4.3..4.6.10');
$this->assertFilterExpr(['minVer' => '4.3', 'maxVer' => '4.6.10', 'maxCount' => '9'], '@4.3..4.6.10:9');
$this->assertFilterExpr(['minVer' => '', 'maxVer' => '5.0.alpha1', 'maxCount' => NULL], '@5.0.alpha1');
$this->assertFilterExpr(['minVer' => '5.0.alpha1', 'maxVer' => '5.0.beta2', 'maxCount' => NULL], '@5.0.alpha1..5.0.beta2');
$this->assertFilterExpr(['minVer' => '5.0.alpha1', 'maxVer' => '5.0.beta2', 'maxCount' => '19'], '@5.0.alpha1..5.0.beta2:19');
}
}

function assertFilterExpr($expected, $filterExpr) {
global $assertionCount;
try {
protected function assertFilterExpr($expected, $filterExpr) {
$parsed = UpgradeSnapshots::parseFilterExpr($filterExpr);
$this->assertEquals($expected, $parsed, "Parsing \"$filterExpr\": ");
}
catch (RuntimeException $e) {
printf("Exception: %s\n", $e->getMessage());
$assertionCount['fail']++;
return;
}
assertEquals($expected, $parsed, "Parsing \"$filterExpr\": ");
}

assertFilterExpr(['minVer' => '', 'maxVer' => '4.5', 'maxCount' => NULL], '@4.5');
assertFilterExpr(['minVer' => '', 'maxVer' => '4.5', 'maxCount' => '13'], '@4.5:13');
assertFilterExpr(['minVer' => '', 'maxVer' => '4.5.2', 'maxCount' => NULL], '@4.5.2');
assertFilterExpr(['minVer' => '4.5.2', 'maxVer' => NULL, 'maxCount' => NULL], '@4.5.2..');
assertFilterExpr(['minVer' => '4.6.alpha1', 'maxVer' => NULL, 'maxCount' => NULL], '@4.6.alpha1..');
assertFilterExpr(['minVer' => '4.5.2', 'maxVer' => NULL, 'maxCount' => '7'], '@4.5.2..:7');
assertFilterExpr(['minVer' => '4.3.1', 'maxVer' => '4.6', 'maxCount' => NULL], '@4.3.1..4.6');
assertFilterExpr(['minVer' => '4.3', 'maxVer' => '4.6.10', 'maxCount' => NULL], '@4.3..4.6.10');
assertFilterExpr(['minVer' => '4.3', 'maxVer' => '4.6.10', 'maxCount' => '9'], '@4.3..4.6.10:9');
assertFilterExpr(['minVer' => '', 'maxVer' => '5.0.alpha1', 'maxCount' => NULL], '@5.0.alpha1');
assertFilterExpr(['minVer' => '5.0.alpha1', 'maxVer' => '5.0.beta2', 'maxCount' => NULL], '@5.0.alpha1..5.0.beta2');
assertFilterExpr(['minVer' => '5.0.alpha1', 'maxVer' => '5.0.beta2', 'maxCount' => '19'], '@5.0.alpha1..5.0.beta2:19');

printf("\n");
printf("Pass: %d\n", $assertionCount['ok']);
printf("Fail: %d\n", $assertionCount['fail']);
exit($assertionCount['fail'] > 0 ? 1 : 0);
}

0 comments on commit bddc5a1

Please sign in to comment.