package org.apache.ode.arch.gme.runtime;
import javax.xml.namespace.QName;
import org.apache.ode.arch.gme.GuiceExternalResource;
import org.apache.ode.arch.gme.RuntimeConfigModule;
import org.apache.ode.arch.gme.TestGuiceDIContainer;
import org.apache.ode.di.guice.core.DIContainerModule;
import org.apache.ode.di.guice.core.JSR250Module;
import org.apache.ode.di.guice.memory.runtime.NodeModule;
import org.apache.ode.di.guice.memory.runtime.WorkModule;
import org.apache.ode.di.guice.runtime.DIDiscoveryModule;
import org.apache.ode.runtime.core.node.NodeBase.Architecture;
import org.apache.ode.runtime.memory.work.xml.WorkConfig;
import org.apache.ode.runtime.memory.work.xml.WorkExec;
import org.apache.ode.runtime.memory.work.xml.WorkScheduler;
import org.apache.ode.test.runtime.work.InstanceTest;
import org.apache.ode.test.runtime.work.OperationTest;
import org.apache.ode.test.runtime.work.OperationTest.TestInject;
import org.apache.ode.test.runtime.work.OperationTest.TestQualifier;
import org.junit.ClassRule;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import com.google.inject.AbstractModule;
@RunWith(Suite.class)
//@SuiteClasses({ InstanceTest.class, OperationTest.class })
//@SuiteClasses({ OperationTest.class })
@SuiteClasses({ InstanceTest.class })
public class MemoryWorkTest {
public static TestGuiceDIContainer container;
@ClassRule
public static GuiceExternalResource resource = new GuiceExternalResource((new TestDIContainerModule()));
public static class TestDIContainerModule extends AbstractModule {
protected void configure() {
install(new JSR250Module());
install(new DIContainerModule());
install(new DIDiscoveryModule());
bind(QName.class).annotatedWith(Architecture.class).toInstance(RuntimeConfigModule.GME_ARCHITECTURE);
install(new NodeModule());
bind(WorkConfig.class).toInstance(new WorkConfig().withWorkExec(new WorkExec()).withWorkScheduler(new WorkScheduler()));
install(new WorkModule());
bind(OperationTest.TestOperationSet.class);
bind(TestInject.class).toInstance(new TestInject(1));
bind(TestInject.class).annotatedWith(TestQualifier.class).toInstance(new TestInject(2));
}
}
}