DealerTest::testCallCancelNoOptions PHP Method

testCallCancelNoOptions() public method

    public function testCallCancelNoOptions()
    {
        $sessionMockBuilder = $this->getMockBuilder('\\Thruway\\Session')->setMethods(['sendMessage'])->disableOriginalConstructor();
        $eeSession = $sessionMockBuilder->getMock();
        $erSession = $sessionMockBuilder->getMock();
        $dealer = new \Thruway\Role\Dealer();
        $interruptMessage = null;
        $eeSession->expects($this->exactly(3))->method('sendMessage')->withConsecutive([$this->isInstanceOf('\\Thruway\\Message\\RegisteredMessage')], [$this->isInstanceOf('\\Thruway\\Message\\InvocationMessage')], [$this->callback(function (\Thruway\Message\InterruptMessage $msg) use(&$interruptMessage) {
            $interruptMessage = $msg;
            return true;
        })]);
        $erSession->expects($this->exactly(2))->method('sendMessage')->withConsecutive([$this->callback(function (\Thruway\Message\ErrorMessage $msg) {
            $this->assertEquals("wamp.error.not_supported", $msg->getErrorURI());
            return true;
        })], [$this->callback(function (\Thruway\Message\ErrorMessage $msg) {
            $this->assertEquals("wamp.error.canceled", $msg->getErrorURI());
            return true;
        })]);
        $registerMsg = new \Thruway\Message\RegisterMessage(12345, (object) [], 'test.procedure');
        $dealer->handleRegisterMessage(new \Thruway\Event\MessageEvent($eeSession, $registerMsg));
        $callMsg = new \Thruway\Message\CallMessage(1, (object) [], 'test.procedure');
        $dealer->handleCallMessage(new \Thruway\Event\MessageEvent($erSession, $callMsg));
        $this->assertEquals(1, $eeSession->getPendingCallCount());
        $cancelMsg = new \Thruway\Message\CancelMessage(1, (object) []);
        $dealer->handleCancelMessage(new \Thruway\Event\MessageEvent($erSession, $cancelMsg));
        $eeSession->setHelloMessage($this->_helloMessage);
        $dealer->handleCancelMessage(new \Thruway\Event\MessageEvent($erSession, $cancelMsg));
        $errorMsgFromEe = \Thruway\Message\ErrorMessage::createErrorMessageFromMessage($interruptMessage);
        $errorMsgFromEe->setErrorURI("wamp.error.canceled");
        $dealer->handleErrorMessage(new \Thruway\Event\MessageEvent($eeSession, $errorMsgFromEe));
        /** @var \Thruway\Session $eeSession */
        $this->assertEquals(0, $eeSession->getPendingCallCount());
    }