From 94d9e5bd119377a435309809684050be465f4611 Mon Sep 17 00:00:00 2001 From: TheMilek Date: Mon, 3 Feb 2025 11:10:33 +0100 Subject: [PATCH] Add rector rules for B2BKit --- config/sets/sylius/plus/b2b-suite.php | 44 +++++++++++++++++++ src/Set/SyliusPlus.php | 1 + .../B2BKit/Entity/AddressAwareTrait.php | 13 ++++++ .../Sylius/B2BKit/Entity/AddressInterface.php | 13 ++++++ .../B2BKit/Entity/CustomerAwareTrait.php | 13 ++++++ .../B2BKit/Entity/CustomerGroupAwareTrait.php | 13 ++++++ .../B2BKit/Entity/CustomerGroupInterface.php | 13 ++++++ .../B2BKit/Entity/CustomerInterface.php | 13 ++++++ .../Sylius/B2BKit/Entity/OrderAwareTrait.php | 13 ++++++ stubs/Sylius/B2BKit/Entity/OrderInterface.php | 13 ++++++ .../B2BKit/Entity/ShopUserAwareTrait.php | 13 ++++++ .../B2BKit/Entity/ShopUserInterface.php | 13 ++++++ stubs/Sylius/Component/Core/Model/Address.php | 11 +++++ .../Sylius/Component/Core/Model/ShopUser.php | 11 +++++ .../Customer/Model/CustomerGroup.php | 11 +++++ .../Set/SyliusPlus/B2BSuite/B2BSuiteTest.php | 27 ++++++++++++ ...class_extending_core_address_model.php.inc | 24 ++++++++++ ...xtending_core_customer_group_model.php.inc | 24 ++++++++++ ...lass_extending_core_customer_model.php.inc | 24 ++++++++++ .../class_extending_core_order_model.php.inc | 24 ++++++++++ ...ass_extending_core_shop_user_model.php.inc | 24 ++++++++++ .../B2BSuite/config/configured_rule.php | 11 +++++ ...rePluginTest.php => LoyaltyPluginTest.php} | 2 +- 23 files changed, 367 insertions(+), 1 deletion(-) create mode 100644 config/sets/sylius/plus/b2b-suite.php create mode 100644 stubs/Sylius/B2BKit/Entity/AddressAwareTrait.php create mode 100644 stubs/Sylius/B2BKit/Entity/AddressInterface.php create mode 100644 stubs/Sylius/B2BKit/Entity/CustomerAwareTrait.php create mode 100644 stubs/Sylius/B2BKit/Entity/CustomerGroupAwareTrait.php create mode 100644 stubs/Sylius/B2BKit/Entity/CustomerGroupInterface.php create mode 100644 stubs/Sylius/B2BKit/Entity/CustomerInterface.php create mode 100644 stubs/Sylius/B2BKit/Entity/OrderAwareTrait.php create mode 100644 stubs/Sylius/B2BKit/Entity/OrderInterface.php create mode 100644 stubs/Sylius/B2BKit/Entity/ShopUserAwareTrait.php create mode 100644 stubs/Sylius/B2BKit/Entity/ShopUserInterface.php create mode 100644 stubs/Sylius/Component/Core/Model/Address.php create mode 100644 stubs/Sylius/Component/Core/Model/ShopUser.php create mode 100644 stubs/Sylius/Component/Customer/Model/CustomerGroup.php create mode 100644 tests/Set/SyliusPlus/B2BSuite/B2BSuiteTest.php create mode 100644 tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_address_model.php.inc create mode 100644 tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_group_model.php.inc create mode 100644 tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_model.php.inc create mode 100644 tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_order_model.php.inc create mode 100644 tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_shop_user_model.php.inc create mode 100644 tests/Set/SyliusPlus/B2BSuite/config/configured_rule.php rename tests/Set/SyliusPlus/LoyaltyPlugin/{MultiStorePluginTest.php => LoyaltyPluginTest.php} (90%) diff --git a/config/sets/sylius/plus/b2b-suite.php b/config/sets/sylius/plus/b2b-suite.php new file mode 100644 index 0000000..3e25bb1 --- /dev/null +++ b/config/sets/sylius/plus/b2b-suite.php @@ -0,0 +1,44 @@ +ruleWithConfiguration(AddInterfaceToClassExtendingTypeRector::class, [ + 'Sylius\Component\Core\Model\Address' => [ + 'Sylius\B2BKit\Entity\AddressInterface', + ], + 'Sylius\Component\Core\Model\Customer' => [ + 'Sylius\B2BKit\Entity\CustomerInterface', + ], + 'Sylius\Component\Customer\Model\CustomerGroup' => [ + 'Sylius\B2BKit\Entity\CustomerGroupInterface', + ], + 'Sylius\Component\Core\Model\Order' => [ + 'Sylius\B2BKit\Entity\OrderInterface', + ], + 'Sylius\Component\Core\Model\ShopUser' => [ + 'Sylius\B2BKit\Entity\ShopUserInterface', + ], + ]); + $rectorConfig->ruleWithConfiguration(AddTraitToClassExtendingTypeRector::class, [ + 'Sylius\Component\Core\Model\Address' => [ + 'Sylius\B2BKit\Entity\AddressAwareTrait', + ], + 'Sylius\Component\Core\Model\Customer' => [ + 'Sylius\B2BKit\Entity\CustomerAwareTrait', + ], + 'Sylius\Component\Customer\Model\CustomerGroup' => [ + 'Sylius\B2BKit\Entity\CustomerGroupAwareTrait', + ], + 'Sylius\Component\Core\Model\Order' => [ + 'Sylius\B2BKit\Entity\OrderAwareTrait', + ], + 'Sylius\Component\Core\Model\ShopUser' => [ + 'Sylius\B2BKit\Entity\ShopUserAwareTrait', + ], + ]); +}; diff --git a/src/Set/SyliusPlus.php b/src/Set/SyliusPlus.php index 231a5e5..7c16baa 100644 --- a/src/Set/SyliusPlus.php +++ b/src/Set/SyliusPlus.php @@ -6,6 +6,7 @@ final class SyliusPlus { + public const B2B_SUITE = __DIR__ . '/../../config/sets/sylius/plus/b2b-suite.php'; public const LOYALTY_PLUGIN = __DIR__ . '/../../config/sets/sylius/plus/loyalty-plugin.php'; public const MULTI_SOURCE_INVENTORY_PLUGIN = __DIR__ . '/../../config/sets/sylius/plus/multi-source-inventory-plugin.php'; public const MULTI_STORE_PLUGIN = __DIR__ . '/../../config/sets/sylius/plus/multi-store-plugin.php'; diff --git a/stubs/Sylius/B2BKit/Entity/AddressAwareTrait.php b/stubs/Sylius/B2BKit/Entity/AddressAwareTrait.php new file mode 100644 index 0000000..3ac04d8 --- /dev/null +++ b/stubs/Sylius/B2BKit/Entity/AddressAwareTrait.php @@ -0,0 +1,13 @@ +doTestFile($file); + } + + /** @return \Iterator */ + public function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixture'); + } + + public function provideConfigFilePath(): string + { + return __DIR__ . '/config/configured_rule.php'; + } +} diff --git a/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_address_model.php.inc b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_address_model.php.inc new file mode 100644 index 0000000..4237584 --- /dev/null +++ b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_address_model.php.inc @@ -0,0 +1,24 @@ + +----- + diff --git a/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_group_model.php.inc b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_group_model.php.inc new file mode 100644 index 0000000..ec19342 --- /dev/null +++ b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_group_model.php.inc @@ -0,0 +1,24 @@ + +----- + diff --git a/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_model.php.inc b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_model.php.inc new file mode 100644 index 0000000..4c9e7fe --- /dev/null +++ b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_customer_model.php.inc @@ -0,0 +1,24 @@ + +----- + diff --git a/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_order_model.php.inc b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_order_model.php.inc new file mode 100644 index 0000000..ace2405 --- /dev/null +++ b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_order_model.php.inc @@ -0,0 +1,24 @@ + +----- + diff --git a/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_shop_user_model.php.inc b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_shop_user_model.php.inc new file mode 100644 index 0000000..801b6d5 --- /dev/null +++ b/tests/Set/SyliusPlus/B2BSuite/Fixture/class_extending_core_shop_user_model.php.inc @@ -0,0 +1,24 @@ + +----- + diff --git a/tests/Set/SyliusPlus/B2BSuite/config/configured_rule.php b/tests/Set/SyliusPlus/B2BSuite/config/configured_rule.php new file mode 100644 index 0000000..3b5f658 --- /dev/null +++ b/tests/Set/SyliusPlus/B2BSuite/config/configured_rule.php @@ -0,0 +1,11 @@ +import(__DIR__ . '/../../../../../config/config.php'); + $rectorConfig->sets([SyliusPlus::B2B_SUITE]); +}; diff --git a/tests/Set/SyliusPlus/LoyaltyPlugin/MultiStorePluginTest.php b/tests/Set/SyliusPlus/LoyaltyPlugin/LoyaltyPluginTest.php similarity index 90% rename from tests/Set/SyliusPlus/LoyaltyPlugin/MultiStorePluginTest.php rename to tests/Set/SyliusPlus/LoyaltyPlugin/LoyaltyPluginTest.php index 08c30a5..0f651a6 100644 --- a/tests/Set/SyliusPlus/LoyaltyPlugin/MultiStorePluginTest.php +++ b/tests/Set/SyliusPlus/LoyaltyPlugin/LoyaltyPluginTest.php @@ -7,7 +7,7 @@ use Iterator; use Rector\Testing\PHPUnit\AbstractRectorTestCase; -final class MultiStorePluginTest extends AbstractRectorTestCase +final class LoyaltyPluginTest extends AbstractRectorTestCase { /** * @dataProvider provideData()