public handlesMessage ( Thruway\Message\Message $msg ) : boolean | ||
$msg | Thruway\Message\Message | |
return | boolean |
public function handlesMessage(Message $msg)
{
$handledMsgCodes = [Message::MSG_CALL, Message::MSG_CANCEL, Message::MSG_REGISTER, Message::MSG_UNREGISTER, Message::MSG_YIELD, Message::MSG_INTERRUPT];
if (in_array($msg->getMsgCode(), $handledMsgCodes)) {
return true;
} elseif ($msg instanceof ErrorMessage && $msg->getErrorMsgCode() == Message::MSG_INVOCATION) {
return true;
} elseif ($msg instanceof ErrorMessage && $msg->getErrorMsgCode() == Message::MSG_INTERRUPT) {
return true;
} else {
return false;
}
}
public function testDealerHandlesCancelInterruptAndError() { $dealer = new \Thruway\Role\Dealer(); $cancelMessage = new \Thruway\Message\CancelMessage(1, (object) []); $this->assertTrue($dealer->handlesMessage($cancelMessage)); $interruptMessage = new \Thruway\Message\InterruptMessage(1, (object) []); $this->assertTrue($dealer->handlesMessage($interruptMessage)); $interruptErrorMessage = \Thruway\Message\ErrorMessage::createErrorMessageFromMessage($interruptMessage); $this->assertTrue($dealer->handlesMessage($interruptErrorMessage)); }