package org.marketcetera.util.ws.stateful;
import java.util.Locale;
import org.junit.Test;
import org.marketcetera.util.log.ActiveLocale;
import org.marketcetera.util.ws.tags.TagFilter;
import static org.junit.Assert.*;
/**
* @author tlerios@marketcetera.com
* @since 1.0.0
* @version $Id: RemoteCallerTest.java 16154 2012-07-14 16:34:05Z colin $
*/
/* $License$ */
public class RemoteCallerTest
extends RemoteCallTestBase
{
private static final class IntCaller
extends RemoteCaller<Object,Integer>
{
public IntCaller()
{
super(TEST_MANAGER);
}
@Override
protected Integer call
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertEquals(TEST_HOLDER,sessionHolder);
return TEST_INT;
}
}
private static final class LocaleCaller
extends RemoteCaller<Object,Locale>
{
public LocaleCaller()
{
super(TEST_MANAGER);
}
@Override
protected Locale call
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertEquals(TEST_HOLDER,sessionHolder);
return ActiveLocale.getLocale();
}
}
private static final class ThrowCaller
extends RemoteCaller<Object,Integer>
{
public ThrowCaller()
{
super(TEST_MANAGER);
}
@Override
protected Integer call
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertEquals(TEST_HOLDER,sessionHolder);
throw TEST_EXCEPTION;
}
}
private static final class ThrowFilterCaller
extends RemoteCaller<Object,Integer>
{
public ThrowFilterCaller
(TagFilter versionIdFilter,
TagFilter appIdFilter,
TagFilter clientIdFilter,
SessionManager<Object> sessionManager,
TagFilter sessionIdFilter)
{
super(versionIdFilter,appIdFilter,clientIdFilter,
sessionManager,sessionIdFilter);
}
public ThrowFilterCaller()
{
super(TEST_MANAGER);
}
@Override
protected Integer call
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertNull(sessionHolder);
setRunnerData(TEST_INT);
return TEST_INT;
}
}
@Test
public void all()
throws Exception
{
single
(new ThrowFilterCaller
(TEST_VERSION_FILTER,TEST_APP_FILTER,TEST_CLIENT_FILTER,
TEST_MANAGER,TEST_SESSION_FILTER),
new ThrowFilterCaller(null,null,null,null,null),
new ThrowFilterCaller());
ClientContext context=new ClientContext();
calls
(context,
new IntCaller(),
new LocaleCaller(),
new ThrowCaller(),
new ThrowFilterCaller(TEST_VERSION_FILTER,null,null,null,null),
new ThrowFilterCaller(null,TEST_APP_FILTER,null,null,null),
new ThrowFilterCaller(null,null,TEST_CLIENT_FILTER,null,null),
new ThrowFilterCaller(null,null,null,null,TEST_SESSION_FILTER));
}
}