First set of tests, argument unwrapping/injection

This commit is contained in:
2024-03-19 00:01:12 +01:00
parent 74960345ba
commit 35efaa1b0d
11 changed files with 870 additions and 8 deletions

View File

@ -0,0 +1,67 @@
<?php
namespace NoccyLabs\React\CommandBus;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(CommandRegistry::class)]
class CommandRegistryTest extends \PHPUnit\Framework\TestCase
{
public function testAddingNewCommandEmitsEvent()
{
$count = 0;
$reg = new CommandRegistry();
$reg->on(CommandRegistry::EVENT_REGISTERED, function ($data) use (&$count){
$this->assertEquals('foo', $data);
$count++;
});
$reg->register('foo', function () {});
$reg->register('foo', function () {});
$this->assertEquals(1, $count);
}
public function testRemovingCommandEmitsEvent()
{
$count = 0;
$reg = new CommandRegistry();
$reg->on(CommandRegistry::EVENT_UNREGISTERED, function ($data) use (&$count){
$this->assertEquals('foo', $data);
$count++;
});
$reg->register('foo', function () {});
$reg->unregister('foo');
$reg->unregister('foo');
$this->assertEquals(1, $count);
}
public function testFindingCommands()
{
$cmda = function () {};
$cmdb = function () {};
$reg = new CommandRegistry();
$reg->register('a', $cmda);
$reg->register('b', $cmdb);
$this->assertEquals('a', $reg->find('a')?->getName());
$this->assertEquals('b', $reg->find('b')?->getName());
}
public function testGettingCommandNames()
{
$cmda = function () {};
$cmdb = function () {};
$reg = new CommandRegistry();
$reg->register('a', $cmda);
$reg->register('b', $cmdb);
$this->assertEquals(['a','b'], $reg->getNames());
}
}