package org.jboss.seam.test.unit.bpm;
import java.util.HashMap;
import javax.transaction.Status;
import javax.transaction.SystemException;
import org.jboss.seam.Component;
import org.jboss.seam.Seam;
import org.jboss.seam.bpm.Actor;
import org.jboss.seam.bpm.PooledTaskInstanceList;
import org.jboss.seam.contexts.Context;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.contexts.Lifecycle;
import org.jboss.seam.init.Initialization;
import org.jboss.seam.mock.MockServletContext;
import org.jboss.seam.transaction.NoTransaction;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TaskListTest
{
@BeforeMethod
protected void setUp()
{
Lifecycle.beginApplication(new HashMap<String, Object>());
new Initialization(new MockServletContext()).create().init();
Lifecycle.setupApplication();
installComponent(Contexts.getApplicationContext(), Actor.class);
installComponent(Contexts.getApplicationContext(), PooledTaskInstanceList.class);
installComponent(Contexts.getApplicationContext(), MockRolledBackTransaction.class);
Lifecycle.beginCall();
}
@Test
public void emptyPooledTaskListIfNoGroupActorIds()
{
Object pooledTaskInstanceList = Component.getInstance("org.jboss.seam.bpm.pooledTaskInstanceList");
assert pooledTaskInstanceList == null;
}
@AfterMethod
protected void tearDown()
{
Lifecycle.endApplication();
}
private void installComponent(Context appContext, Class clazz)
{
appContext.set(Seam.getComponentName(clazz) + ".component", new Component(clazz));
}
public static class MockRolledBackTransaction extends NoTransaction
{
@Override
public int getStatus() throws SystemException
{
return Status.STATUS_MARKED_ROLLBACK;
}
}
}