diff --git a/tests/KeepMethodDecorator/Stub/StubKeepMethod.overwritten.phps b/tests/KeepMethodDecorator/Stub/StubKeepMethod.overwritten.phps new file mode 100644 index 0000000000000000000000000000000000000000..8ae761706be63540361dbbe1bb158f9e922d4a4f --- /dev/null +++ b/tests/KeepMethodDecorator/Stub/StubKeepMethod.overwritten.phps @@ -0,0 +1,5 @@ +namespace Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub; + +final class StubKeepMethod +{ +} diff --git a/tests/Stub/StubKeepMethod.php b/tests/KeepMethodDecorator/Stub/StubKeepMethod.php similarity index 90% rename from tests/Stub/StubKeepMethod.php rename to tests/KeepMethodDecorator/Stub/StubKeepMethod.php index fc768e64b9d09d0ec9882619db34e30051972280..026dde9a6c57453e9828eb62aa44c9d49f5fb93f 100644 --- a/tests/Stub/StubKeepMethod.php +++ b/tests/KeepMethodDecorator/Stub/StubKeepMethod.php @@ -1,6 +1,6 @@ <?php declare(strict_types=1); -namespace Grifart\ClassScaffolder\Test\Stub; +namespace Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub; use Grifart\ClassScaffolder\Definition\ClassDefinition; use Grifart\ClassScaffolder\Definition\ClassDefinitionBuilder; diff --git a/tests/Stub/StubKeepMethod.preserved.phps b/tests/KeepMethodDecorator/Stub/StubKeepMethod.preserved.phps similarity index 91% rename from tests/Stub/StubKeepMethod.preserved.phps rename to tests/KeepMethodDecorator/Stub/StubKeepMethod.preserved.phps index 165880fccef06338d233db46f1cd77082ac2164d..942de5f0faae2467528dac9d9f44a856c851ec1d 100644 --- a/tests/Stub/StubKeepMethod.preserved.phps +++ b/tests/KeepMethodDecorator/Stub/StubKeepMethod.preserved.phps @@ -1,4 +1,4 @@ -namespace Grifart\ClassScaffolder\Test\Stub; +namespace Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub; use Grifart\ClassScaffolder\Definition\ClassDefinition; use Grifart\ClassScaffolder\Definition\ClassDefinitionBuilder; diff --git a/tests/KeepMethodDecorator/keepMethodDecorator.phpt b/tests/KeepMethodDecorator/keepMethodDecorator.phpt new file mode 100644 index 0000000000000000000000000000000000000000..f3a1b19b9dc58bf82351fc3c995c79526f035f42 --- /dev/null +++ b/tests/KeepMethodDecorator/keepMethodDecorator.phpt @@ -0,0 +1,42 @@ +<?php declare(strict_types=1); + +namespace Grifart\ClassScaffolder\Test; + +use Grifart\ClassScaffolder\Decorators\ClassDecorator; +use Grifart\ClassScaffolder\Definition\ClassDefinition; +use Grifart\ClassScaffolder\Definition\Types; +use Tester\Assert; + +require_once __DIR__ . '/../bootstrap.php'; +$generator = new \Grifart\ClassScaffolder\ClassGenerator(); + +/** + * @param ClassDecorator[] $decorators + */ +$generateClass = static fn (array $decorators) => $generator->generateClass( + new ClassDefinition( + 'Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub', + 'StubKeepMethod', + [], + ['field'=>Types\resolve('mixed')], + $decorators + ), +); + +// methods are preserved +Assert::matchFile( + __DIR__ . '/Stub/StubKeepMethod.preserved.phps', + (string) $generateClass([ + new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('newMethod'), + new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKept'), + new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithParam'), + new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithImportedUses'), + new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithAnnotation'), + ]), +); + +// methods are overwritten +Assert::matchFile( + __DIR__ . '/Stub/StubKeepMethod.overwritten.phps', + (string) $generateClass([]), +); diff --git a/tests/Stub/StubKeepMethod.overwritten.phps b/tests/Stub/StubKeepMethod.overwritten.phps deleted file mode 100644 index 115cbd7fa4fdb031ee2adbfbf6b7c5b16d0d97a7..0000000000000000000000000000000000000000 --- a/tests/Stub/StubKeepMethod.overwritten.phps +++ /dev/null @@ -1,5 +0,0 @@ -namespace Grifart\ClassScaffolder\Test\Stub; - -final class StubKeepMethod -{ -} diff --git a/tests/classGenerator.1-simple.phps b/tests/basic-test/classGenerator.1-simple.phps similarity index 100% rename from tests/classGenerator.1-simple.phps rename to tests/basic-test/classGenerator.1-simple.phps diff --git a/tests/classGenerator.2-with-iterator.phps b/tests/basic-test/classGenerator.2-with-iterator.phps similarity index 100% rename from tests/classGenerator.2-with-iterator.phps rename to tests/basic-test/classGenerator.2-with-iterator.phps diff --git a/tests/classGenerator.3-with-field.phps b/tests/basic-test/classGenerator.3-with-field.phps similarity index 100% rename from tests/classGenerator.3-with-field.phps rename to tests/basic-test/classGenerator.3-with-field.phps diff --git a/tests/classGenerator.4-with-field-nullable.phps b/tests/basic-test/classGenerator.4-with-field-nullable.phps similarity index 100% rename from tests/classGenerator.4-with-field-nullable.phps rename to tests/basic-test/classGenerator.4-with-field-nullable.phps diff --git a/tests/classGenerator.5-with-list.phps b/tests/basic-test/classGenerator.5-with-list.phps similarity index 100% rename from tests/classGenerator.5-with-list.phps rename to tests/basic-test/classGenerator.5-with-list.phps diff --git a/tests/classGenerator.6-with-complex-collection.phps b/tests/basic-test/classGenerator.6-with-complex-collection.phps similarity index 100% rename from tests/classGenerator.6-with-complex-collection.phps rename to tests/basic-test/classGenerator.6-with-complex-collection.phps diff --git a/tests/classGenerator.7-setters.phps b/tests/basic-test/classGenerator.7-setters.phps similarity index 100% rename from tests/classGenerator.7-setters.phps rename to tests/basic-test/classGenerator.7-setters.phps diff --git a/tests/classGenerator.8-generics.phps b/tests/basic-test/classGenerator.8-generics.phps similarity index 100% rename from tests/classGenerator.8-generics.phps rename to tests/basic-test/classGenerator.8-generics.phps diff --git a/tests/classGenerator.9-cross-reference.phps b/tests/basic-test/classGenerator.9-cross-reference.phps similarity index 100% rename from tests/classGenerator.9-cross-reference.phps rename to tests/basic-test/classGenerator.9-cross-reference.phps diff --git a/tests/classGenerator.phpt b/tests/basic-test/classGenerator.phpt similarity index 98% rename from tests/classGenerator.phpt rename to tests/basic-test/classGenerator.phpt index 180869acb6502bcf3d6c8e03b9ecd92a20a0770f..af7052553d5bcea6a6481cf496ddfbe073e5ec29 100644 --- a/tests/classGenerator.phpt +++ b/tests/basic-test/classGenerator.phpt @@ -7,7 +7,7 @@ use Grifart\ClassScaffolder\Definition\ClassDefinition; use \Grifart\ClassScaffolder\Definition\Types; use function Grifart\ClassScaffolder\Definition\Types\nullable; -require_once __DIR__ . '/bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; diff --git a/tests/keepMethodDecorator.phpt b/tests/keepMethodDecorator.phpt deleted file mode 100644 index 71da51c7fd9230e8e58432a173ac734445d529ba..0000000000000000000000000000000000000000 --- a/tests/keepMethodDecorator.phpt +++ /dev/null @@ -1,40 +0,0 @@ -<?php declare(strict_types=1); - -namespace Grifart\ClassScaffolder\Test; - -use Grifart\ClassScaffolder\Definition\ClassDefinition; -use Grifart\ClassScaffolder\Definition\Types; -use Tester\Assert; - -require_once __DIR__ . '/bootstrap.php'; -$generator = new \Grifart\ClassScaffolder\ClassGenerator(); - -$generateClass = fn (bool $withDecorators) => $generator->generateClass( - new ClassDefinition( - 'Grifart\ClassScaffolder\Test\Stub', - 'StubKeepMethod', - [], - ['field'=>Types\resolve('mixed')], - $withDecorators - ? [ - new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('newMethod'), - new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKept'), - new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithParam'), - new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithImportedUses'), - new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithAnnotation'), - ] - : [], - ), -); - -// methods are preserved -Assert::matchFile( - __DIR__ . '/Stub/StubKeepMethod.preserved.phps', - (string) $generateClass(withDecorators: true), -); - -// methods are overwritten -Assert::matchFile( - __DIR__ . '/Stub/StubKeepMethod.overwritten.phps', - (string) $generateClass(withDecorators: false), -);