DealerTest::testInterruptSentToNonSupportingClient PHP Метод

testInterruptSentToNonSupportingClient() публичный Метод

    public function testInterruptSentToNonSupportingClient()
    {
        $dealer = new Dealer();
        $calleeTransport = new DummyTransport();
        $calleeSession = new Session($calleeTransport);
        // make sure this callee supports call cancellation
        $calleeSession->setHelloMessage(new HelloMessage('some.realm', (object) ["roles" => (object) ['callee' => (object) ['features' => (object) ['call_canceling' => false]]]]));
        $dealer->handleRegisterMessage(new MessageEvent($calleeSession, new RegisterMessage(1234, (object) [], 'some.proc')));
        $this->assertInstanceOf(RegisteredMessage::class, $calleeTransport->getLastMessageSent());
        $registrationId = $calleeTransport->getLastMessageSent()->getRegistrationId();
        $callerTransport = new DummyTransport();
        $callerSession = new Session($callerTransport);
        $callMessage = new CallMessage(2345, (object) [], 'some.proc');
        $dealer->handleCallMessage(new MessageEvent($callerSession, $callMessage));
        $this->assertInstanceOf(InvocationMessage::class, $calleeTransport->getLastMessageSent());
        $invocationId = $calleeTransport->getLastMessageSent()->getRequestId();
        $dealer->handleCancelMessage(new MessageEvent($callerSession, new CancelMessage(2345, (object) [])));
        // callee should not have received anything
        $this->assertInstanceOf(InvocationMessage::class, $calleeTransport->getLastMessageSent());
    }