From 5050698384eaea5a2fd92daa15c64afde1f0f07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20L=C3=B8vgaard?= Date: Tue, 2 Oct 2018 14:35:33 +0200 Subject: [PATCH] fixed tests --- DependencyInjection/Configuration.php | 1 - .../SetonoCronExpressionExtension.php | 4 -- .../CronExpressionToPartsTransformer.php | 2 +- .../DBAL/Types/CronExpressionTypeTest.php | 4 ++ Tests/Form/Type/CronExpressionTypeTest.php | 53 +++++++++++++++---- phpunit.xml.dist | 2 +- 6 files changed, 50 insertions(+), 16 deletions(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index d1b4f6e..6148a7e 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -15,7 +15,6 @@ final class Configuration implements ConfigurationInterface public function getConfigTreeBuilder(): TreeBuilder { $treeBuilder = new TreeBuilder(); - $rootNode = $treeBuilder->root('setono_cron_expression'); return $treeBuilder; } diff --git a/DependencyInjection/SetonoCronExpressionExtension.php b/DependencyInjection/SetonoCronExpressionExtension.php index ec90925..bd99427 100644 --- a/DependencyInjection/SetonoCronExpressionExtension.php +++ b/DependencyInjection/SetonoCronExpressionExtension.php @@ -5,11 +5,9 @@ namespace Setono\CronExpressionBundle\DependencyInjection; use Setono\CronExpressionBundle\Doctrine\DBAL\Types\CronExpressionType; -use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; final class SetonoCronExpressionExtension extends Extension implements PrependExtensionInterface { @@ -18,8 +16,6 @@ final class SetonoCronExpressionExtension extends Extension implements PrependEx */ public function load(array $config, ContainerBuilder $container): void { - $config = $this->processConfiguration($this->getConfiguration([], $container), $config); - $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); } /** diff --git a/Form/DataTransformer/CronExpressionToPartsTransformer.php b/Form/DataTransformer/CronExpressionToPartsTransformer.php index 2565c4f..d69dd79 100644 --- a/Form/DataTransformer/CronExpressionToPartsTransformer.php +++ b/Form/DataTransformer/CronExpressionToPartsTransformer.php @@ -68,7 +68,7 @@ private function convertCronParts(array $cronArray): string { $cronString = join(',', $cronArray); - return $cronString ?: '*'; + return '' !== $cronString ? $cronString : '*'; } private function convertCronString(string $cronString): array diff --git a/Tests/Doctrine/DBAL/Types/CronExpressionTypeTest.php b/Tests/Doctrine/DBAL/Types/CronExpressionTypeTest.php index dc5867b..062e487 100644 --- a/Tests/Doctrine/DBAL/Types/CronExpressionTypeTest.php +++ b/Tests/Doctrine/DBAL/Types/CronExpressionTypeTest.php @@ -5,6 +5,7 @@ namespace Setono\CronExpressionBundle\Tests\Doctrine\DBAL\Types; use Cron\CronExpression; +use Doctrine\DBAL\DBALException; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Types\Type; use PHPUnit\Framework\MockObject\MockObject; @@ -23,6 +24,9 @@ final class CronExpressionTypeTest extends TestCase */ private $platform; + /** + * @throws DBALException + */ protected function setUp() { if (!Type::hasType('cron_expression')) { diff --git a/Tests/Form/Type/CronExpressionTypeTest.php b/Tests/Form/Type/CronExpressionTypeTest.php index 514d869..bd55c56 100644 --- a/Tests/Form/Type/CronExpressionTypeTest.php +++ b/Tests/Form/Type/CronExpressionTypeTest.php @@ -13,16 +13,51 @@ class CronExpressionTypeTest extends TypeTestCase /** * @test */ - public function submit(): void + public function submitWithAllSet(): void { - $formData = array( - 'minutes' => '0', - 'hours' => '12', - 'days' => '1', - 'months' => '6', - 'weekdays' => '3', - ); + $this->_submit([ + 'minutes' => ['0'], + 'hours' => ['12'], + 'days' => ['1'], + 'months' => ['6'], + 'weekdays' => ['3'], + ], '0 12 1 6 3'); + } + + /** + * @test + */ + public function submitMultipleMinutes(): void + { + $this->_submit([ + 'minutes' => ['0', '13'], + 'hours' => ['12'], + 'days' => ['1'], + 'months' => ['6'], + 'weekdays' => ['3'], + ], '0,13 12 1 6 3'); + } + + /** + * @test + */ + public function submitMinutesOnly(): void + { + $this->_submit([ + 'minutes' => ['0'], + ], '0 * * * *'); + } + + /** + * @test + */ + public function submitEmpty(): void + { + $this->_submit([], '* * * * *'); + } + private function _submit(array $formData, string $expected): void + { $form = $this->factory->create(CronExpressionType::class); // submit the data to the form directly @@ -41,6 +76,6 @@ public function submit(): void $cronExpression = $form->getData(); $this->assertInstanceOf(CronExpression::class, $cronExpression); - $this->assertSame('0 12 1 6 3', $cronExpression->getExpression()); + $this->assertSame($expected, $cronExpression->getExpression()); } } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index cc4a906..1bda546 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -14,7 +14,7 @@ stopOnFailure="false"> - tests + Tests