Kraken\_Unit\Supervision\SolverCompositeTest::testApiSolver_CallsHandlersOneAfterAnother PHP Method

testApiSolver_CallsHandlersOneAfterAnother() public method

    public function testApiSolver_CallsHandlersOneAfterAnother()
    {
        $ex = new Exception('Exception');
        $params = ['params1' => 'value1'];
        $queue = '';
        $solver1 = $this->getMock(SolverInterface::class, [], [], '', false);
        $solver1->expects($this->once())->method('solve')->with($ex, $params)->will($this->returnCallback(function () use(&$queue) {
            $queue .= 'A';
            return Promise::doResolve()->then(function () use(&$queue) {
                $queue .= 'C';
            });
        }));
        $solver2 = $this->getMock(SolverInterface::class, [], [], '', false);
        $solver2->expects($this->once())->method('solve')->with($ex, $params)->will($this->returnCallback(function () use(&$queue) {
            $queue .= 'B';
            return 'done';
        }));
        $solver = $this->createSolver([$solver1, $solver2]);
        $callable = $this->createCallableMock();
        $callable->expects($this->once())->method('__invoke')->with('done');
        $result = $this->callProtectedMethod($solver, 'solver', [$ex, $params]);
        $result->then($callable);
        $this->assertSame('ACB', $queue);
    }