Files
2021-05-30 08:20:41 +00:00

49 lines
1.4 KiB
PHP

<?php
namespace Lorisleiva\CronTranslator\Tests;
use Lorisleiva\CronTranslator\CronTranslator;
use PHPUnit\Framework\TestCase as BaseTestCase;
use Lorisleiva\CronTranslator\CronParsingException;
class TestCase extends BaseTestCase
{
public function assertCronTranslateTo($expected, $actual, $locale = 'en', $timeFormat24hours = false)
{
$this->assertEquals($expected, CronTranslator::translate($actual, $locale, $timeFormat24hours));
}
public function assertCronThrowsParsingError($cron)
{
try {
CronTranslator::translate($cron);
} catch (CronParsingException $expression) {
return $this->addToAssertionCount(1);
}
$this->fail("Expected CronParsingError exception for [$cron]");
}
public function generateCombinationsFromMatrix($matrix, $locale = 'en', $timeFormat24hours = false)
{
function combinations($matrix, $acc = []) {
if (empty($matrix)) {
return [implode(' ', $acc)];
}
$current = array_shift($matrix);
$results = [];
foreach ($current as $value) {
$results[] = combinations($matrix, array_merge($acc, [$value]));
}
return array_merge(...$results);
}
foreach (combinations($matrix) as $cron) {
echo "\n" . $cron . "\t=> " . CronTranslator::translate($cron, $locale, $timeFormat24hours);
}
}
}