You've already forked Php-Template
feat: implement command bus with attribute-based handler resolution and add example command and handler
All checks were successful
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 2m52s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 3m12s
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 3m16s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 3m7s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Successful in 3m11s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Successful in 1m28s
All checks were successful
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 2m52s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 3m12s
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 3m16s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 3m7s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Successful in 3m11s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Successful in 1m28s
This commit is contained in:
36
tests/CommandBus/AttributeLocatorTest.php
Normal file
36
tests/CommandBus/AttributeLocatorTest.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Siteworxpro\Tests\CommandBus;
|
||||
|
||||
use League\Tactician\Exception\CanNotInvokeHandlerException;
|
||||
use Siteworxpro\App\CommandBus\AttributeLocator;
|
||||
use Siteworxpro\App\CommandBus\Commands\ExampleCommand;
|
||||
use Siteworxpro\App\CommandBus\Handlers\ExampleHandler;
|
||||
use Siteworxpro\Tests\Unit;
|
||||
|
||||
class AttributeLocatorTest extends Unit
|
||||
{
|
||||
private const array HANDLERS = [
|
||||
ExampleCommand::class => ExampleHandler::class,
|
||||
];
|
||||
|
||||
public function testResolvesFiles(): void
|
||||
{
|
||||
$attributeLocator = new AttributeLocator();
|
||||
|
||||
foreach (self::HANDLERS as $command => $handler) {
|
||||
$class = $attributeLocator->getHandlerForCommand($command);
|
||||
$this->assertInstanceOf($handler, $class);
|
||||
}
|
||||
}
|
||||
|
||||
public function testThrowsOnCannotResolve(): void
|
||||
{
|
||||
$attributeLocator = new AttributeLocator();
|
||||
|
||||
$this->expectException(CanNotInvokeHandlerException::class);
|
||||
$attributeLocator->getHandlerForCommand('NonExistentCommand');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user