/*
* 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 MockWampClientRole extends WampRole {
@Override
public String getRoleName() {
return "mock";
}
@Override
protected boolean resolveTxMessageImpl(WampPeer receiver, WampMessage msg) {
if (msg.isHelloMessage()) {
return true;
}
if (msg.isGoodbyeMessage()) {
return true;
}
if (msg.isPublishMessage()) {
return true;
}
if (msg.isSubscribeMessage()) {
return true;
}
if (msg.isUnsubscribeMessage()) {
return true;
}
if (msg.isRegisterMessage()) {
return true;
}
if (msg.isUnregisterMessage()) {
return true;
}
if (msg.isCallMessage()) {
return true;
}
return false;
}
@Override
protected boolean resolveRxMessageImpl(WampPeer transmitter, WampMessage msg,
OnReplyListener listener) {
if (msg.isWelcomeMessage()) {
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.isPublishedMessage()) {
return true;
}
if (msg.isSubscribedMessage()) {
return true;
}
if (msg.isUnsubscribedMessage()) {
return true;
}
if (msg.isRegisteredMessage()) {
return true;
}
if (msg.isUnregisteredMessage()) {
return true;
}
if (msg.isResultMessage()) {
return true;
}
if (msg.isEventMessage()) {
return true;
}
return false;
}
}