package osgi.enroute.base.timer.test;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
import junit.framework.TestCase;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
import osgi.enroute.base.configurer.test.ConfigurerTest;
import aQute.bnd.annotation.component.Reference;
import aQute.bnd.testing.DSTestWiring;
public class TimerTester extends TestCase {
BundleContext context = FrameworkUtil.getBundle(ConfigurerTest.class).getBundleContext();
DSTestWiring ds = new DSTestWiring();
private Timer timer;
public void setUp() throws Exception {
ds.setContext(context);
ds.add(this);
ds.wire();
}
public void testTimer() throws Exception {
final Semaphore s = new Semaphore(0);
timer.schedule(new TimerTask() {
@Override
public void run() {
s.release();
}
}, 100);
assertTrue(s.tryAcquire(1, 100, TimeUnit.SECONDS));
}
@Reference
void setTimer(Timer timer) {
this.timer = timer;
}
}