/* * Copyright (C) 2013-2014 Sony Computer Science Laboratories, Inc. All Rights Reserved. * Copyright (C) 2014 Sony Corporation. All Rights Reserved. */ package com.sonycsl.test.mock; import com.sonycsl.wamp.WampError; import com.sonycsl.wamp.WampPeer; import com.sonycsl.wamp.message.WampMessage; import com.sonycsl.wamp.message.WampMessageFactory; import com.sonycsl.wamp.role.WampRole; import org.json.JSONObject; public class MockWampRouterRole extends WampRole { @Override public String getRoleName() { return "mockRouter"; } @Override protected boolean resolveTxMessageImpl(WampPeer receiver, WampMessage msg) { return msg.isGoodbyeMessage(); } @Override protected boolean resolveRxMessageImpl(WampPeer transmitter, WampMessage msg, OnReplyListener listener) { if (msg.isHelloMessage()) { listener.onReply(transmitter, WampMessageFactory.createWelcome(1, new JSONObject())); return true; } if (msg.isGoodbyeMessage()) { if (!msg.asGoodbyeMessage().getReason().equals(WampError.GOODBYE_AND_OUT)) { listener.onReply(transmitter, WampMessageFactory.createGoodbye(new JSONObject(), WampError.GOODBYE_AND_OUT)); } return true; } if (msg.isRegisterMessage()) { listener.onReply(transmitter, WampMessageFactory.createRegistered(msg.asRegisterMessage().getRequestId(), 1)); return true; } if (msg.isUnregisterMessage()) { listener.onReply(transmitter, WampMessageFactory.createUnregistered(msg.asUnregisterMessage() .getRequestId())); return true; } if (msg.isPublishMessage()) { listener.onReply(transmitter, WampMessageFactory.createPublished(msg.asPublishMessage().getRequestId(), 1)); return true; } if (msg.isCallMessage()) { listener.onReply(transmitter, WampMessageFactory.createResult(msg.asCallMessage().getRequestId(), new JSONObject())); return true; } if (msg.isSubscribeMessage()) { listener.onReply(transmitter, WampMessageFactory.createSubscribed( msg.asSubscribeMessage().getRequestId(), 1)); return true; } if (msg.isUnsubscribeMessage()) { listener.onReply(transmitter, WampMessageFactory.createUnsubscribed(msg.asUnsubscribeMessage() .getRequestId())); return true; } return false; } }