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);
|
||
|
}
|
||
|
}
|