package org.jboss.test.txtimer.test;
import junit.framework.TestCase;
import org.jboss.ejb.txtimer.EJBTimerService;
import org.jboss.ejb.txtimer.EJBTimerServiceLocator;
import org.jboss.ejb.txtimer.TimedObjectId;
import org.jboss.ejb.AllowedOperationsAssociation;
import org.jboss.test.txtimer.test.SimpleTimedObjectInvoker;
import javax.ejb.TimedObject;
import javax.ejb.TimerService;
import javax.management.ObjectName;
public abstract class TimerTestBase extends TestCase
{
protected EJBTimerService ejbTimerService;
protected TimerTestBase(String name)
{
super(name);
}
protected void setUp() throws Exception
{
super.setUp();
ejbTimerService = EJBTimerServiceLocator.getEjbTimerService();
AllowedOperationsAssociation.pushInMethodFlag(AllowedOperationsAssociation.IN_BUSINESS_METHOD);
}
protected void tearDown() throws Exception
{
super.tearDown();
AllowedOperationsAssociation.popInMethodFlag();
}
protected TimerService createTimerService(TimedObject timedObject)
{
SimpleTimedObjectInvoker invoker = new SimpleTimedObjectInvoker();
TimedObjectId timedObjectId = invoker.addTimedObject(timedObject);
ObjectName containerId = timedObjectId.getContainerId();
Object instancePk = timedObjectId.getInstancePk();
return ejbTimerService.createTimerService(containerId, instancePk, invoker);
}
protected void sleep(long interval) throws InterruptedException
{
synchronized (this)
{
wait(interval);
}
}
}