40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace NoccyLabs\React\CommandBus;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use PHPUnit\Framework\Attributes\CoversClass;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#[CoversClass(Context::class)]
							 | 
						||
| 
								 | 
							
								class ContextTest extends \PHPUnit\Framework\TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testContextPropertyAccess()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $context = new Context("", [ 'foo'=>true, 'bar'=>'hello' ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(true, $context->foo);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('hello', $context->bar);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testMakingParameters()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $func1 = function () {};
							 | 
						||
| 
								 | 
							
								        $func2 = function (Context $context) {};
							 | 
						||
| 
								 | 
							
								        $func3 = function ($a, ?int $b, ?string $c, $d) {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $context = new Context("", [ 'a'=>true, 'b'=>42, 'c'=>'hello' ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $expect1 = [];
							 | 
						||
| 
								 | 
							
								        $expect2 = [$context];
							 | 
						||
| 
								 | 
							
								        $expect3 = [true,42,'hello',null];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $args1 = $context->toMethodParameters($func1);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($expect1, $args1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $args2 = $context->toMethodParameters($func2);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($expect2, $args2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $args3 = $context->toMethodParameters($func3);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($expect3, $args3);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |