package org.marketcetera.util.ws.stateful;
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: RemoteRunnerTest.java 16154 2012-07-14 16:34:05Z colin $
*/
/* $License$ */
public class RemoteRunnerTest
extends RemoteCallTestBase
{
private static final class IntRunner
extends RemoteRunner<Object>
{
public IntRunner()
{
super(TEST_MANAGER);
}
@Override
protected void run
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertEquals(TEST_HOLDER,sessionHolder);
setRunnerData(TEST_INT);
}
}
private static final class LocaleRunner
extends RemoteRunner<Object>
{
public LocaleRunner()
{
super(TEST_MANAGER);
}
@Override
protected void run
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertEquals(TEST_HOLDER,sessionHolder);
setRunnerData(ActiveLocale.getLocale());
}
}
private static final class ThrowRunner
extends RemoteRunner<Object>
{
public ThrowRunner()
{
super(TEST_MANAGER);
}
@Override
protected void run
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertEquals(TEST_HOLDER,sessionHolder);
throw TEST_EXCEPTION;
}
}
private static final class ThrowFilterRunner
extends RemoteRunner<Object>
{
public ThrowFilterRunner
(TagFilter versionIdFilter,
TagFilter appIdFilter,
TagFilter clientIdFilter,
SessionManager<Object> sessionManager,
TagFilter sessionIdFilter)
{
super(versionIdFilter,appIdFilter,clientIdFilter,
sessionManager,sessionIdFilter);
}
public ThrowFilterRunner()
{
super(TEST_MANAGER);
}
@Override
protected void run
(ClientContext context,
SessionHolder<Object> sessionHolder)
{
assertNull(sessionHolder);
setRunnerData(TEST_INT);
}
}
@Test
public void all()
throws Exception
{
single
(new ThrowFilterRunner
(TEST_VERSION_FILTER,TEST_APP_FILTER,TEST_CLIENT_FILTER,
TEST_MANAGER,TEST_SESSION_FILTER),
new ThrowFilterRunner(null,null,null,null,null),
new ThrowFilterRunner());
ClientContext context=new ClientContext();
calls
(context,
new IntRunner(),
new LocaleRunner(),
new ThrowRunner(),
new ThrowFilterRunner(TEST_VERSION_FILTER,null,null,null,null),
new ThrowFilterRunner(null,TEST_APP_FILTER,null,null,null),
new ThrowFilterRunner(null,null,TEST_CLIENT_FILTER,null,null),
new ThrowFilterRunner(null,null,null,null,TEST_SESSION_FILTER));
}
}