Skip to content

Commit

Permalink
Adding creating methods in Util for EJBs
Browse files Browse the repository at this point in the history
Cleaning up EJB tests
Dummy EJB 3.1 singleton annotation

git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@227 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
nickarls committed Nov 3, 2008
1 parent a665a3e commit dbd76ad
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 90 deletions.
Expand Up @@ -24,13 +24,14 @@
import org.jboss.webbeans.test.beans.Panther;
import org.jboss.webbeans.test.beans.Puma;
import org.jboss.webbeans.test.beans.Tiger;
import org.jboss.webbeans.test.util.Util;
import org.jboss.webbeans.util.Reflections;
import org.testng.annotations.Test;

@SuppressWarnings( { "unchecked", "unused" })
public class EnterpriseBeanModelTest extends AbstractTest
{

@SuppressWarnings("unchecked")
{

@Test
public void testStateless()
{
Expand All @@ -39,134 +40,83 @@ public void testStateless()
Reflections.annotationSetMatches(lion.getBindingTypes(), Current.class);
assert lion.getName().equals("lion");
}

@SuppressWarnings("unchecked")

@Test
public void testStatelessDefinedInXml()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
AnnotatedType annotatedItem = new SimpleAnnotatedType(Giraffe.class, annotations);

EnterpriseBeanModel<Giraffe> giraffe = new EnterpriseBeanModel<Giraffe>(new SimpleAnnotatedType(Giraffe.class), annotatedItem, manager);
EnterpriseBeanModel<Giraffe> giraffe = Util.createEnterpriseBeanModel(Giraffe.class, manager);
assert giraffe.getScopeType().equals(Dependent.class);
Reflections.annotationSetMatches(giraffe.getBindingTypes(), Current.class);
assert Reflections.annotationSetMatches(giraffe.getBindingTypes(), Current.class);
}
@Test

@Test(expectedExceptions = RuntimeException.class)
public void testStatelessWithRequestScope()
{
boolean exception = false;
try
{
new EnterpriseBeanModel<Bear>(new SimpleAnnotatedType<Bear>(Bear.class), getEmptyAnnotatedType(Bear.class), manager);
}
catch (Exception e)
{
exception = true;
}
assert exception;
EnterpriseBeanModel<Bear> bear = Util.createEnterpriseBeanModel(Bear.class, manager);
}
@Test(groups="ejb3")

@Test(groups = "ejb3")
public void testSingleton()
{
assert false;
}
@Test(groups="ejb3")

@Test(groups = "ejb3")
public void testSingletonWithRequestScope()
{
assert false;
}

@SuppressWarnings("unchecked")

@Test
public void testStateful()
{

AbstractEnterpriseBeanModel<Tiger> tiger = new EnterpriseBeanModel<Tiger>(new SimpleAnnotatedType(Tiger.class), getEmptyAnnotatedType(Tiger.class), manager);
Reflections.annotationSetMatches(tiger.getBindingTypes(), Synchronous.class);
EnterpriseBeanModel<Tiger> tiger = Util.createEnterpriseBeanModel(Tiger.class, manager);
assert Reflections.annotationSetMatches(tiger.getBindingTypes(), Synchronous.class);
assert tiger.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove");
assert tiger.getName() == null;
}

@SuppressWarnings("unchecked")

@Test
public void testMultipleRemoveMethodsWithDestroys()
{

AbstractEnterpriseBeanModel<Elephant> elephant = new EnterpriseBeanModel<Elephant>(new SimpleAnnotatedType(Elephant.class), getEmptyAnnotatedType(Elephant.class), manager);
EnterpriseBeanModel<Elephant> elephant = Util.createEnterpriseBeanModel(Elephant.class, manager);
assert elephant.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove2");
}

@SuppressWarnings("unchecked")
@Test

@Test(expectedExceptions=RuntimeException.class)
public void testMultipleRemoveMethodsWithoutDestroys()
{
boolean exception = false;
try
{
new EnterpriseBeanModel<Puma>(new SimpleAnnotatedType(Puma.class), getEmptyAnnotatedType(Puma.class), manager);
}
catch (Exception e)
{
exception = true;
}
assert exception;
EnterpriseBeanModel<Puma> puma = Util.createEnterpriseBeanModel(Puma.class, manager);
}

@SuppressWarnings("unchecked")
@Test

@Test(expectedExceptions=RuntimeException.class)
public void testMultipleRemoveMethodsWithMultipleDestroys()
{
boolean exception = false;
try
{
new EnterpriseBeanModel<Cougar>(new SimpleAnnotatedType(Cougar.class), getEmptyAnnotatedType(Cougar.class), manager);
}
catch (Exception e)
{
exception = true;
}
assert exception;
EnterpriseBeanModel<Cougar> cougar = Util.createEnterpriseBeanModel(Cougar.class, manager);
}

@SuppressWarnings("unchecked")
@Test

@Test(expectedExceptions=RuntimeException.class)
public void testNonStatefulEnterpriseBeanWithDestroys()
{
boolean exception = false;
try
{
new EnterpriseBeanModel<Cheetah>(new SimpleAnnotatedType(Cheetah.class), getEmptyAnnotatedType(Cheetah.class), manager);
}
catch (Exception e)
{
exception = true;
}
assert exception;
EnterpriseBeanModel<Cheetah> cheetah = Util.createEnterpriseBeanModel(Cheetah.class, manager);
}

@SuppressWarnings("unchecked")

@Test
public void testRemoveMethodWithDefaultBinding()
{

AbstractEnterpriseBeanModel<Panther> panther = new EnterpriseBeanModel<Panther>(new SimpleAnnotatedType<Panther>(Panther.class), getEmptyAnnotatedType(Panther.class), manager);

EnterpriseBeanModel<Panther> panther = Util.createEnterpriseBeanModel(Panther.class, manager);
assert panther.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove");
assert panther.getRemoveMethod().getParameters().size() == 1;
assert panther.getRemoveMethod().getParameters().get(0).getType().equals(String.class);
assert panther.getRemoveMethod().getParameters().get(0).getBindingTypes().size() == 1;
assert Reflections.annotationSetMatches(panther.getRemoveMethod().getParameters().get(0).getBindingTypes(), Current.class);
}

@SuppressWarnings("unchecked")

@Test
public void testMessageDriven()
{
AbstractEnterpriseBeanModel<Leopard> leopard = new EnterpriseBeanModel<Leopard>(new SimpleAnnotatedType(Leopard.class), getEmptyAnnotatedType(Leopard.class), manager);
Reflections.annotationSetMatches(leopard.getBindingTypes(), Current.class);
EnterpriseBeanModel<Leopard> leopard = Util.createEnterpriseBeanModel(Leopard.class, manager);
assert Reflections.annotationSetMatches(leopard.getBindingTypes(), Current.class);
}

}
@@ -0,0 +1,13 @@
package org.jboss.webbeans.test.annotations;

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface Singleton
{
// EJB 3.1. Fake it 'til you make it.
}
24 changes: 17 additions & 7 deletions webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Expand Up @@ -7,31 +7,41 @@
import org.jboss.webbeans.SimpleBeanImpl;
import org.jboss.webbeans.introspector.AnnotatedType;
import org.jboss.webbeans.introspector.SimpleAnnotatedType;
import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
import org.jboss.webbeans.model.bean.SimpleBeanModel;


public class Util
{
public static <T> SimpleBeanImpl<T> createSimpleWebBean(Class<T> clazz, ManagerImpl manager)
{
return new SimpleBeanImpl<T>(createSimpleModel(clazz, manager), manager);
}

public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, ManagerImpl manager)
{
return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), getEmptyAnnotatedType(clazz), manager);
}
public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, AnnotatedType<T> xmlAnnotatedType, ManagerImpl manager)

public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, AnnotatedType<T> annotatedType, ManagerImpl manager)
{
return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), xmlAnnotatedType, manager);
return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), annotatedType, manager);
}


public static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, ManagerImpl manager)
{
return new EnterpriseBeanModel<T>(new SimpleAnnotatedType<T>(clazz), getEmptyAnnotatedType(clazz), manager);
}

public static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, AnnotatedType<T> annotatedType, ManagerImpl manager)
{
return new EnterpriseBeanModel<T>(new SimpleAnnotatedType<T>(clazz), annotatedType, manager);
}

public static <T> AnnotatedType<T> getEmptyAnnotatedType(Class<T> type)
{
return new SimpleAnnotatedType<T>(type, new HashMap<Class<? extends Annotation>, Annotation>());
}



}

0 comments on commit dbd76ad

Please sign in to comment.