First set of tests, argument unwrapping/injection
This commit is contained in:
		
							
								
								
									
										67
									
								
								tests/CommandRegistryTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								tests/CommandRegistryTest.php
									
									
									
									
									
										Normal 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());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user