From d8d67bccc264af7b87b73b9a2468c32486ff5448 Mon Sep 17 00:00:00 2001 From: kastahov Date: Tue, 8 Nov 2022 14:55:54 +0200 Subject: [PATCH 1/3] Add prototyping --- src/Bootloader/PrototypeBootloader.php | 23 ++++++++++++++ .../Bootloader/PrototypeBootloaderTest.php | 30 +++++++++++++++++++ tests/src/TestCase.php | 1 + 3 files changed, 54 insertions(+) create mode 100644 src/Bootloader/PrototypeBootloader.php create mode 100644 tests/src/Bootloader/PrototypeBootloaderTest.php diff --git a/src/Bootloader/PrototypeBootloader.php b/src/Bootloader/PrototypeBootloader.php new file mode 100644 index 0000000..c65ffa8 --- /dev/null +++ b/src/Bootloader/PrototypeBootloader.php @@ -0,0 +1,23 @@ +bindProperty('workflow', WorkflowClientInterface::class); + $prototype->bindProperty('workflow-manager', WorkflowManagerInterface::class); + } +} diff --git a/tests/src/Bootloader/PrototypeBootloaderTest.php b/tests/src/Bootloader/PrototypeBootloaderTest.php new file mode 100644 index 0000000..65555df --- /dev/null +++ b/tests/src/Bootloader/PrototypeBootloaderTest.php @@ -0,0 +1,30 @@ +getContainer()->get(PrototypeRegistry::class); + + $this->assertInstanceOf( + $expected, + $this->getContainer()->get($registry->resolveProperty($property)->type->name()) + ); + } + + public function propertiesDataProvider(): \Traversable + { + yield [WorkflowClientInterface::class, 'workflow']; + yield [WorkflowManagerInterface::class, 'workflow-manager']; + } +} diff --git a/tests/src/TestCase.php b/tests/src/TestCase.php index e88cca9..fc57ced 100644 --- a/tests/src/TestCase.php +++ b/tests/src/TestCase.php @@ -16,6 +16,7 @@ public function defineBootloaders(): array \Spiral\Boot\Bootloader\ConfigurationBootloader::class, \Spiral\Bootloader\Attributes\AttributesBootloader::class, \Spiral\TemporalBridge\Bootloader\TemporalBridgeBootloader::class, + \Spiral\TemporalBridge\Bootloader\PrototypeBootloader::class, // ... ]; } From 36a5350a5d0419e9ad4a4d9ca56401db93e15610 Mon Sep 17 00:00:00 2001 From: Kirill Astakhov Date: Tue, 8 Nov 2022 15:10:42 +0200 Subject: [PATCH 2/3] Update src/Bootloader/PrototypeBootloader.php Co-authored-by: Pavel Buchnev --- src/Bootloader/PrototypeBootloader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Bootloader/PrototypeBootloader.php b/src/Bootloader/PrototypeBootloader.php index c65ffa8..734ad93 100644 --- a/src/Bootloader/PrototypeBootloader.php +++ b/src/Bootloader/PrototypeBootloader.php @@ -18,6 +18,6 @@ class PrototypeBootloader extends Bootloader public function boot(BasePrototypeBootloader $prototype): void { $prototype->bindProperty('workflow', WorkflowClientInterface::class); - $prototype->bindProperty('workflow-manager', WorkflowManagerInterface::class); + $prototype->bindProperty('workflowManager', WorkflowManagerInterface::class); } } From 0bf84f3ade2dc97d53c1dcd7a15799ff29d08873 Mon Sep 17 00:00:00 2001 From: kastahov Date: Tue, 8 Nov 2022 15:11:37 +0200 Subject: [PATCH 3/3] Fix tests --- tests/src/Bootloader/PrototypeBootloaderTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/src/Bootloader/PrototypeBootloaderTest.php b/tests/src/Bootloader/PrototypeBootloaderTest.php index 65555df..33fef54 100644 --- a/tests/src/Bootloader/PrototypeBootloaderTest.php +++ b/tests/src/Bootloader/PrototypeBootloaderTest.php @@ -25,6 +25,6 @@ public function testBindProperties(string $expected, string $property): void public function propertiesDataProvider(): \Traversable { yield [WorkflowClientInterface::class, 'workflow']; - yield [WorkflowManagerInterface::class, 'workflow-manager']; + yield [WorkflowManagerInterface::class, 'workflowManager']; } }