[webbeans-commits] Webbeans SVN: r922 - in ri/trunk/webbeans-ri/src: test/java/org/jboss/webbeans/test and 4 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Tue Jan 13 12:14:25 EST 2009
Author: pete.muir at jboss.org
Date: 2009-01-13 12:14:25 -0500 (Tue, 13 Jan 2009)
New Revision: 922
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/integration/
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/integration/TransactionIntegrationTest.java
Removed:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanTest.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractEjbEmbeddableTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/EnterpriseBeanLifecycleTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java
ri/trunk/webbeans-ri/src/test/resources/log4j.xml
Log:
add tx integration tests
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-13 16:31:13 UTC (rev 921)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-13 17:14:25 UTC (rev 922)
@@ -235,7 +235,7 @@
{
DependentContext.INSTANCE.setActive(true);
T instance = produceInstance();
- checkReturnValue(instance);
+ //checkReturnValue(instance);
return instance;
}
finally
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractEjbEmbeddableTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractEjbEmbeddableTest.java 2009-01-13 16:31:13 UTC (rev 921)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractEjbEmbeddableTest.java 2009-01-13 17:14:25 UTC (rev 922)
@@ -4,17 +4,23 @@
import java.util.Properties;
import javax.ejb.EJBContainer;
+import javax.naming.Context;
+import javax.naming.InitialContext;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeSuite;
public abstract class AbstractEjbEmbeddableTest extends AbstractTest
{
+
+ private EJBContainer ejbContainer;
- @AfterClass
- public void afterClass()
+ @AfterSuite
+ public void afterClass() throws Exception
{
EJBContainer current = EJBContainer.getCurrentEJBContainer();
if(current != null)
@@ -23,16 +29,29 @@
}
}
- @BeforeClass
- public void beforeClass()
+ @BeforeSuite
+ public void beforeClass() throws Exception
{
Properties properties = new Properties();
String module = getURLToTestClasses(getTestClassesPath());
properties.setProperty(EJBContainer.EMBEDDABLE_MODULES_PROPERTY, module);
-
- EJBContainer.createEJBContainer(properties);
+ this.ejbContainer = EJBContainer.createEJBContainer(properties);
}
+ @BeforeMethod
+ public void before() throws Exception
+ {
+ super.before();
+ webBeansBootstrap.getNaming().setContext(new InitialContext());
+ }
+
+ @AfterMethod
+ public void after() throws Exception
+ {
+ webBeansBootstrap.getNaming().setContext(null);
+ }
+
+
protected String getTestClassesPath()
{
return "org/jboss/webbeans/test";
@@ -45,4 +64,9 @@
return s.substring(0, s.length() - path.length());
}
+ public Context getContext()
+ {
+ return webBeansBootstrap.getNaming().getContext();
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java 2009-01-13 16:31:13 UTC (rev 921)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java 2009-01-13 17:14:25 UTC (rev 922)
@@ -38,7 +38,7 @@
AbstractTest.deactivateDependentContext();
}
- public final void run()
+ public final void run() throws Exception
{
try
{
@@ -51,7 +51,7 @@
}
}
- protected abstract void execute();
+ protected abstract void execute() throws Exception;
}
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanTest.java 2009-01-13 16:31:13 UTC (rev 921)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanTest.java 2009-01-13 17:14:25 UTC (rev 922)
@@ -1,39 +0,0 @@
-package org.jboss.webbeans.test;
-
-import javax.ejb.EJBException;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import org.jboss.webbeans.examples.Translator;
-import org.testng.annotations.Test;
-
-
-
-
-public class EnterpriseBeanTest extends AbstractEjbEmbeddableTest
-{
-
- @Test(expectedExceptions=UnsupportedOperationException.class)
- public void test() throws NamingException
- {
-
- InitialContext ctx = new InitialContext();
- Translator translator = (Translator) ctx.lookup("SentenceTranslator/local");
- try
- {
- translator.translate("foo");
- }
- catch (EJBException e)
- {
- if (e.getCausedByException() instanceof RuntimeException)
- {
- throw (RuntimeException) e.getCausedByException();
- }
- else
- {
- throw new RuntimeException(e.getCausedByException());
- }
- }
- }
-
-}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/EnterpriseBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/EnterpriseBeanLifecycleTest.java 2009-01-13 16:31:13 UTC (rev 921)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/EnterpriseBeanLifecycleTest.java 2009-01-13 17:14:25 UTC (rev 922)
@@ -3,7 +3,7 @@
import javax.webbeans.UnremovedException;
import org.jboss.webbeans.bean.EnterpriseBean;
-import org.jboss.webbeans.test.AbstractTest;
+import org.jboss.webbeans.test.AbstractEjbEmbeddableTest;
import org.jboss.webbeans.test.SpecAssertion;
import org.jboss.webbeans.test.SpecVersion;
import org.jboss.webbeans.test.ejb.valid.GoodDoggie;
@@ -24,7 +24,7 @@
*/
@SpecVersion("20081206")
-public class EnterpriseBeanLifecycleTest extends AbstractTest
+public class EnterpriseBeanLifecycleTest extends AbstractEjbEmbeddableTest
{
/**
* Initializes the EJB descriptors for the EJBs about to be used
@@ -51,7 +51,7 @@
* When the destroy() method is called, the Web Bean manager calls the Web
* Bean remove method upon the proxy
*/
- @Test(groups = { "enterpriseBeans", "clientProxy", "lifecycle", "stub"})
+ @Test(groups = { "enterpriseBeans", "clientProxy", "lifecycle"})
@SpecAssertion(section = "6.4")
public void testRemoveMethodCalled()
{
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/integration/TransactionIntegrationTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/integration/TransactionIntegrationTest.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/integration/TransactionIntegrationTest.java 2009-01-13 17:14:25 UTC (rev 922)
@@ -0,0 +1,55 @@
+package org.jboss.webbeans.test.integration;
+
+import javax.transaction.Status;
+import javax.transaction.UserTransaction;
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.Current;
+
+import org.jboss.webbeans.test.AbstractEjbEmbeddableTest;
+import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
+import org.testng.annotations.Test;
+
+public class TransactionIntegrationTest extends AbstractEjbEmbeddableTest
+{
+
+ @Test
+ public void testTransactionLookup() throws Exception
+ {
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery());
+ webBeansBootstrap.boot();
+ UserTransaction userTransaction = manager.getInstanceByType(UserTransaction.class, new AnnotationLiteral<Current>() {});
+ assert userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION;
+ }
+
+
+ }.run();
+
+ }
+
+ @Test
+ public void testWBTransactionLookup() throws Exception
+ {
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery());
+ webBeansBootstrap.boot();
+ org.jboss.webbeans.transaction.UserTransaction userTransaction = manager.getInstanceByType(org.jboss.webbeans.transaction.UserTransaction.class, new AnnotationLiteral<Current>() {});
+ assert userTransaction.isNoTransaction();
+ }
+
+
+ }.run();
+
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/integration/TransactionIntegrationTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java 2009-01-13 16:31:13 UTC (rev 921)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java 2009-01-13 17:14:25 UTC (rev 922)
@@ -4,7 +4,15 @@
import javax.annotation.Resource;
import javax.ejb.EJB;
+import javax.naming.Context;
import javax.persistence.PersistenceContext;
+import javax.transaction.HeuristicMixedException;
+import javax.transaction.HeuristicRollbackException;
+import javax.transaction.NotSupportedException;
+import javax.transaction.RollbackException;
+import javax.transaction.SystemException;
+import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
import javax.webbeans.InjectionPoint;
import org.jboss.webbeans.bootstrap.WebBeansBootstrap;
@@ -15,26 +23,108 @@
import org.jboss.webbeans.context.SessionContext;
import org.jboss.webbeans.context.beanmap.SimpleBeanMap;
import org.jboss.webbeans.ejb.spi.EjbResolver;
+import org.jboss.webbeans.resource.DefaultNaming;
import org.jboss.webbeans.resources.spi.Naming;
import org.jboss.webbeans.resources.spi.ResourceLoader;
public class MockBootstrap extends WebBeansBootstrap
{
- private static final Naming MOCK_NAMING = new Naming()
+ public static class MockNaming implements Naming
{
+
+ private Context context;
+
+ private Naming delegate;
+
+ public MockNaming()
+ {
+ this.delegate = new DefaultNaming();
+ }
+
+ public void setContext(Context context)
+ {
+ this.context = context;
+ }
+
+ public Context getContext()
+ {
+ return context;
+ }
public void bind(String key, Object value)
{
- // no-op
+ if (context != null)
+ {
+ delegate.bind(key, value);
+ }
}
public <T> T lookup(String name, Class<? extends T> expectedType)
{
- // No-op
- return null;
+ if (context != null)
+ {
+ T instance = overrideLookup(name, expectedType);
+ if (instance == null)
+ {
+ instance = delegate.lookup(name, expectedType);
+ }
+ return instance;
+ }
+ else
+ {
+ return null;
+ }
}
+ @SuppressWarnings("unchecked")
+ private <T> T overrideLookup(String name, Class<? extends T> expectedType)
+ {
+ // JBoss Embedded EJB 3.1 doesn't seem to bind this!
+ if (name.equals("java:comp/UserTransaction"))
+ {
+ final TransactionManager tm = delegate.lookup("java:/TransactionManager", TransactionManager.class);
+ return (T) new UserTransaction()
+ {
+
+ public void begin() throws NotSupportedException, SystemException
+ {
+ tm.begin();
+ }
+
+ public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, IllegalStateException, SystemException
+ {
+ tm.commit();
+ }
+
+ public int getStatus() throws SystemException
+ {
+ return tm.getStatus();
+ }
+
+ public void rollback() throws IllegalStateException, SecurityException, SystemException
+ {
+ tm.rollback();
+ }
+
+ public void setRollbackOnly() throws IllegalStateException, SystemException
+ {
+ tm.setRollbackOnly();
+ }
+
+ public void setTransactionTimeout(int seconds) throws SystemException
+ {
+ tm.setTransactionTimeout(seconds);
+ }
+
+ };
+ }
+ else
+ {
+ return null;
+ }
+ }
+
};
private static final EjbResolver MOCK_EJB_RESOLVER = new EjbResolver()
@@ -80,10 +170,13 @@
private WebBeanDiscovery webBeanDiscovery;
private ResourceLoader resourceLoader;
+ private MockNaming mockNaming;
+
public MockBootstrap()
{
this.resourceLoader = new MockResourceLoader();
- initManager(MOCK_NAMING, MOCK_EJB_RESOLVER, resourceLoader);
+ this.mockNaming = new MockNaming();
+ initManager(mockNaming, MOCK_EJB_RESOLVER, resourceLoader);
registerStandardBeans();
// Set up the mock contexts
@@ -117,4 +210,9 @@
return resourceLoader;
}
+ public MockNaming getNaming()
+ {
+ return mockNaming;
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/test/resources/log4j.xml
===================================================================
--- ri/trunk/webbeans-ri/src/test/resources/log4j.xml 2009-01-13 16:31:13 UTC (rev 921)
+++ ri/trunk/webbeans-ri/src/test/resources/log4j.xml 2009-01-13 17:14:25 UTC (rev 922)
@@ -13,7 +13,7 @@
<!-- ############### Embedded EJB3 ################# -->
<category name="org.jboss">
- <priority value="ERROR"/>
+ <priority value="INFO"/>
</category>
<category name="com.arjuna">
<priority value="ERROR"/>
@@ -45,7 +45,7 @@
<!-- ############### Web Beans logging ################### -->
<category name="org.jboss.webbeans">
- <priority value="WARN"/>
+ <priority value="INFO"/>
</category>
<root>
More information about the weld-commits
mailing list