diff --git a/tests/bitExpert/PHPStan/Sylius/Rule/Grid/GridBuilderFieldIsPartOfResourceClassValidUnitTest.php b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/GridBuilderFieldIsPartOfResourceClassValidUnitTest.php new file mode 100644 index 0000000..3aeffc0 --- /dev/null +++ b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/GridBuilderFieldIsPartOfResourceClassValidUnitTest.php @@ -0,0 +1,62 @@ + + */ +class GridBuilderFieldIsPartOfResourceClassValidUnitTest extends RuleTestCase +{ + protected function getRule(): Rule + { + return new GridBuilderFieldIsPartOfResourceClass($this->createReflectionProvider()); + } + + protected function getCollectors(): array + { + $fields = []; + $fields[] = new StringFieldNode(); + $fields[] = new DateTimeFieldNode(); + $fields[] = new TwigFieldNode(); + $fields[] = new EnumFieldNode(); + $fields[] = new CallableFieldNode(); + $fields[] = new GenericFieldNode(); + + return [ + new CollectRessourceClassForGridClass(), + new CollectFieldsForGridClass(new DefaultFieldRegistry($fields)), + ]; + } + + #[Test] + public function ruleSucceedsWhenAllFieldsExist(): void + { + $this->analyse( + [__DIR__ . '/data/grid_valid.php'], + [], + ); + } +} diff --git a/tests/bitExpert/PHPStan/Sylius/Rule/Grid/GridBuilderFilterIsPartOfResourceClassValidUnitTest.php b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/GridBuilderFilterIsPartOfResourceClassValidUnitTest.php new file mode 100644 index 0000000..8595845 --- /dev/null +++ b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/GridBuilderFilterIsPartOfResourceClassValidUnitTest.php @@ -0,0 +1,62 @@ + + */ +class GridBuilderFilterIsPartOfResourceClassValidUnitTest extends RuleTestCase +{ + protected function getRule(): Rule + { + return new GridBuilderFilterIsPartOfResourceClass($this->createReflectionProvider()); + } + + protected function getCollectors(): array + { + $filters = []; + $filters[] = new EntityFilter(); + $filters[] = new EnumFilter(); + $filters[] = new ExistsFilter(); + $filters[] = new Filter(); + $filters[] = new SelectFilter(); + $filters[] = new StringFilter(); + + return [ + new CollectRessourceClassForGridClass(), + new CollectFilterForGridClass(new DefaultFilterRegistry($filters)), + ]; + } + + #[Test] + public function ruleSucceedsWhenAllFilterFieldsExist(): void + { + $this->analyse( + [__DIR__ . '/data/grid_valid.php'], + [], + ); + } +} diff --git a/tests/bitExpert/PHPStan/Sylius/Rule/Grid/ResourceAwareGridNeedsResourceClassValidUnitTest.php b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/ResourceAwareGridNeedsResourceClassValidUnitTest.php new file mode 100644 index 0000000..480391f --- /dev/null +++ b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/ResourceAwareGridNeedsResourceClassValidUnitTest.php @@ -0,0 +1,46 @@ + + */ +class ResourceAwareGridNeedsResourceClassValidUnitTest extends RuleTestCase +{ + protected function getRule(): Rule + { + return new ResourceAwareGridNeedsResourceClass($this->createReflectionProvider()); + } + + #[Test] + public function ruleSucceedsWhenResourceClassExistsViaMethod(): void + { + $this->analyse( + [__DIR__ . '/data/grid_valid.php'], + [], + ); + } + + #[Test] + public function ruleSucceedsWhenResourceClassExistsViaAttribute(): void + { + $this->analyse( + [__DIR__ . '/data/grid_valid_attr.php'], + [], + ); + } +} diff --git a/tests/bitExpert/PHPStan/Sylius/Rule/Grid/data/grid_valid.php b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/data/grid_valid.php new file mode 100644 index 0000000..d966d55 --- /dev/null +++ b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/data/grid_valid.php @@ -0,0 +1,52 @@ +addField( + StringField::create('id')->setLabel('app.ui.id'), + ); + $gridBuilder->addField( + StringField::create('name')->setLabel('app.ui.name'), + ); + $gridBuilder->addField( + StringField::create('address.city')->setLabel('app.ui.address.city'), + ); + $gridBuilder->addField( + StringField::create('.')->setLabel('app.ui.some_calculated_field'), + ); + $gridBuilder->addFilter( + StringFilter::create('name'), + ); + $gridBuilder->addFilter( + EnumFilter::create('status', Status::class, false, 'status'), + ); + $gridBuilder->addFilter( + StringFilter::create('virtual-field', ['name', 'address.city']), + ); + } + + public function getResourceClass(): string + { + return Supplier::class; + } +} diff --git a/tests/bitExpert/PHPStan/Sylius/Rule/Grid/data/grid_valid_attr.php b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/data/grid_valid_attr.php new file mode 100644 index 0000000..1c3f49e --- /dev/null +++ b/tests/bitExpert/PHPStan/Sylius/Rule/Grid/data/grid_valid_attr.php @@ -0,0 +1,18 @@ +