Skip to content

Commit

Permalink
Add rector config for B2BKit (#32)
Browse files Browse the repository at this point in the history
Tests will be fixed later by
#31
  • Loading branch information
NoResponseMate authored Feb 3, 2025
2 parents bf01361 + 94d9e5b commit a9672e7
Show file tree
Hide file tree
Showing 23 changed files with 367 additions and 1 deletion.
44 changes: 44 additions & 0 deletions config/sets/sylius/plus/b2b-suite.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Sylius\SyliusRector\Rector\Class_\AddInterfaceToClassExtendingTypeRector;
use Sylius\SyliusRector\Rector\Class_\AddTraitToClassExtendingTypeRector;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->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',
],
]);
};
1 change: 1 addition & 0 deletions src/Set/SyliusPlus.php
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/AddressAwareTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (trait_exists('Sylius\B2BKit\Entity\AddressAwareTrait')) {
return;
}

trait AddressAwareTrait
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/AddressInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (class_exists('Sylius\B2BKit\Entity\AddressInterface')) {
return;
}

interface AddressInterface
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/CustomerAwareTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (trait_exists('Sylius\B2BKit\Entity\CustomerAwareTrait')) {
return;
}

trait CustomerAwareTrait
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/CustomerGroupAwareTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (trait_exists('Sylius\B2BKit\Entity\CustomerGroupAwareTrait')) {
return;
}

trait CustomerGroupAwareTrait
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/CustomerGroupInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (class_exists('Sylius\B2BKit\Entity\CustomerGroupInterface')) {
return;
}

interface CustomerGroupInterface
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/CustomerInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (class_exists('Sylius\B2BKit\Entity\CustomerInterface')) {
return;
}

interface CustomerInterface
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/OrderAwareTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (trait_exists('Sylius\B2BKit\Entity\OrderAwareTrait')) {
return;
}

trait OrderAwareTrait
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/OrderInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (class_exists('Sylius\B2BKit\Entity\OrderInterface')) {
return;
}

interface OrderInterface
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/ShopUserAwareTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (trait_exists('Sylius\B2BKit\Entity\ShopUserAwareTrait')) {
return;
}

trait ShopUserAwareTrait
{
}
13 changes: 13 additions & 0 deletions stubs/Sylius/B2BKit/Entity/ShopUserInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

namespace Sylius\B2BKit\Entity;

if (class_exists('Sylius\B2BKit\Entity\ShopUserInterface')) {
return;
}

interface ShopUserInterface
{
}
11 changes: 11 additions & 0 deletions stubs/Sylius/Component/Core/Model/Address.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace Sylius\Component\Core\Model;

if (class_exists('Sylius\Component\Core\Model\Address')) {
return;
}

class Address
{
}
11 changes: 11 additions & 0 deletions stubs/Sylius/Component/Core/Model/ShopUser.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace Sylius\Component\Core\Model;

if (class_exists('Sylius\Component\Core\Model\ShopUser')) {
return;
}

class ShopUser
{
}
11 changes: 11 additions & 0 deletions stubs/Sylius/Component/Customer/Model/CustomerGroup.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace Sylius\Component\Customer\Model;

if (class_exists('Sylius\Component\Customer\Model\CustomerGroup')) {
return;
}

class CustomerGroup
{
}
27 changes: 27 additions & 0 deletions tests/Set/SyliusPlus/B2BSuite/B2BSuiteTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

declare(strict_types=1);

namespace Sylius\SyliusRector\Tests\Set\SyliusPlus\B2BKit;

use Rector\Testing\PHPUnit\AbstractRectorTestCase;

final class B2BSuiteTest extends AbstractRectorTestCase
{
/** @dataProvider provideData() */
public function test(string $file): void
{
$this->doTestFile($file);
}

/** @return \Iterator<string> */
public function provideData(): \Iterator
{
return self::yieldFilesFromDirectory(__DIR__ . '/Fixture');
}

public function provideConfigFilePath(): string
{
return __DIR__ . '/config/configured_rule.php';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\Address as BaseAddress;

class Address extends BaseAddress
{
}

?>
-----
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\Address as BaseAddress;

class Address extends BaseAddress implements \Sylius\B2BKit\Entity\AddressInterface
{
use \Sylius\B2BKit\Entity\AddressAwareTrait;
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Customer\Model\CustomerGroup as BaseCustomerGroup;

class CustomerGroup extends BaseCustomerGroup
{
}

?>
-----
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Customer\Model\CustomerGroup as BaseCustomerGroup;

class CustomerGroup extends BaseCustomerGroup implements \Sylius\B2BKit\Entity\CustomerGroupInterface
{
use \Sylius\B2BKit\Entity\CustomerGroupAwareTrait;
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\Customer as BaseCustomer;

class Customer extends BaseCustomer
{
}

?>
-----
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\Customer as BaseCustomer;

class Customer extends BaseCustomer implements \Sylius\B2BKit\Entity\CustomerInterface
{
use \Sylius\B2BKit\Entity\CustomerAwareTrait;
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\Order as BaseOrder;

class Order extends BaseOrder
{
}

?>
-----
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\Order as BaseOrder;

class Order extends BaseOrder implements \Sylius\B2BKit\Entity\OrderInterface
{
use \Sylius\B2BKit\Entity\OrderAwareTrait;
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\ShopUser as BaseShopUser;

class ShopUser extends BaseShopUser
{
}

?>
-----
<?php

namespace Sylius\SyliusRector\Tests\Rector\Class_\AddInterfaceToClassExtendingType\Fixture;

use Sylius\Component\Core\Model\ShopUser as BaseShopUser;

class ShopUser extends BaseShopUser implements \Sylius\B2BKit\Entity\ShopUserInterface
{
use \Sylius\B2BKit\Entity\ShopUserAwareTrait;
}

?>
11 changes: 11 additions & 0 deletions tests/Set/SyliusPlus/B2BSuite/config/configured_rule.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Sylius\SyliusRector\Set\SyliusPlus;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->import(__DIR__ . '/../../../../../config/config.php');
$rectorConfig->sets([SyliusPlus::B2B_SUITE]);
};
Loading

0 comments on commit a9672e7

Please sign in to comment.