package eu.ggnet.dwoss.progress; import eu.ggnet.dwoss.progress.SubMonitor; import eu.ggnet.dwoss.progress.MonitorFactory; import eu.ggnet.saft.api.progress.ProgressObserver; import java.util.HashMap; import java.util.Map; import javax.ejb.EJB; import javax.ejb.Stateless; import javax.ejb.embeddable.EJBContainer; import javax.inject.Inject; import javax.naming.NamingException; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; public class ProgressIT { private EJBContainer container; @Inject private Monitorer monitorer; @EJB private ProgressObserver progressObserver; @Before public void setUp() throws NamingException { Map<String, Object> o = new HashMap<>(); o.put("log4j.category.OpenEJB.options", "warn"); o.put("log4j.category.OpenEJB.server", "warn"); o.put("log4j.category.OpenEJB.cdi", "warn"); o.put("log4j.category.OpenEJB.startup", "warn"); o.put("log4j.category.OpenEJB.startup.service", "warn"); o.put("log4j.category.OpenEJB.startup.config", "warn"); o.put("openejb.deployments.classpath.require.descriptor", "true"); container = EJBContainer.createEJBContainer(o); container.getContext().bind("inject", this); } @After public void after() { container.close(); } @Test public void monitor() { assertNotNull(monitorer); monitorer.doSomething(); assertNotNull(progressObserver); assertFalse(progressObserver.hasProgress()); } @Stateless public static class Monitorer { @Inject private MonitorFactory monitorFactory; public void doSomething() { SubMonitor m = monitorFactory.newSubMonitor("The Test Progress", 100); for (int i = 0; i < 100; i++) { m.worked(1, "Done: " + i); try { Thread.sleep(10); } catch (InterruptedException ex) { } } m.finish(); } } }