Kraken\_Module\Supervision\SupervisorTest::testCaseSupervisor_HandlesException_UsingFirstValidHandler PHP Method

testCaseSupervisor_HandlesException_UsingFirstValidHandler() public method

    public function testCaseSupervisor_HandlesException_UsingFirstValidHandler()
    {
        $ex = new RejectionException();
        $params = ['param' => 'value'];
        $result = null;
        $unexpected = new UnexpectedSolver();
        $expected = new ExpectedSolver();
        $factory = new SolverFactory();
        $factory->define('Unexpected', function () use($unexpected) {
            return $unexpected;
        })->define('Expected', function () use($expected) {
            return $expected;
        });
        $super = $this->createSupervisor($factory, [], [WriteException::class => 'Unexpected', RuntimeException::class => 'Expected', Exception::class => 'Unexpected']);
        $super->solve($ex, $params)->then(function ($value) use(&$result) {
            $result = $value;
        });
        $this->assertSame($expected, $result);
    }