Using JBoss Microcontainer for JUnit Tests
tbar0711 Sep 11, 2009 10:53 AMHello,
I'd like to use the JBoss Microcontainer for JUnit Tests of Session Beans without a running JBoss 4.2.3. I read a lot about this. But I still don't know what exactly I have to download and where. There are different projects:
• aop-mc-int - the aop integration
• classloader - new classloader model, prepared to handle OSGi CL style
• container - general metadata utilities, and virtual file system usuable across projects
• dependency - a generic dependency state machine
• deployers - the virtual deployment framework (VDF) spi and abstractions.
• guice-int - guice integration
• kernel - the microcontainer adding xml deployment and "javabeans" to the above two projects
• managed
• metatype
• osgi-int - osgi integration
• reliance-identity - define identity as a MC POJO service
• reliance-rules - define your dependencies with Drools
• reliance-jbpm - define your dependencies with jBPM
• spring-int - spring integration
But what of them do I need and how I have to configure it?
Here is an example for one of my Testclasses:
package de.myapplication.business.SomethingDaoImplTest; import junit.framework.*;ork.TestCase; import org.apache.log4j.Level; import org.apache.log4j.Logger; import de.myapplication.exception.PersistenceException; import de.myapplication.persistence.Something; import de.myapplication.persistence.SomethingPK; import de.myapplication.session.persistence.dao.LocalStatelessAccessor; import de.myapplication.session.persistence.dao.interfaces.SomethingDAO; public class SomethingDaoImplTest extends TestCase { private static final Logger LOGGER = Logger .getLogger(SomethingDaoImplTest.class.getName()); public void testLoad() throws PersistenceException { // Testdaten String somethingnr = "12345566"; String sap_system = "asdf2"; String sap_mandant = "000"; String sprache = "DE"; Something something = null; LOGGER .log(Level.INFO, "***** SomethingDaoImplTest: testLoad() *****"); SomethingDAO somethingDAO = LocalStatelessAccessor .provideBean(SomethingDAO.class); something = somethingDAO.load(new SomethingPK(somethingnr, sap_system, sap_mandant), sprache); LOGGER.log(Level.INFO, "S_nr: " + something.getId().getSomethingnr()); if (something.getId().equals( new SomethingPK(somethingnr, sap_system, sap_mandant))) { assertTrue("Object gleich", true); } else { assertTrue("Object nicht gleich", false); } } public void testLoadSomethingTexte() throws PersistenceException { String somethingnr = "12345566"; String sap_system = "asdf44"; String sap_mandant = "000"; String sprache = "DE"; Something something = null; LOGGER.log(Level.INFO, "***** SomethingDaoImplTest: testLoadSomethingTexte() *****"); SomethingDAO somethingDAO = LocalStatelessAccessor .provideBean(SomethingDAO.class); something = SomethingDAO.load(new SomethingPK(somethingnr, sap_system, sap_mandant), sprache); LOGGER.log(Level.INFO, "S_nr: " + something.getId().getSomethingnr()); assertEquals(sprache, something.getSomethingText().getId().getSprache()); } }
SomethingDaoImpl is a Session Bean which implements the interface SomethingDAO. The LocalStatelessAccessor handles the JNDI Lookup.
Thanks in advance.