Skip to content

Commit

Permalink
Test for WELD-719
Browse files Browse the repository at this point in the history
  • Loading branch information
pmuir committed Nov 28, 2010
1 parent 67dab50 commit 1114297
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 2 deletions.
@@ -0,0 +1,36 @@
package org.jboss.weld.environment.servlet.test.deployment.structure;

import java.util.ArrayList;
import java.util.List;

import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.ProcessAnnotatedType;

public class ContainerLifecycleObserver implements Extension
{

private List<AnnotatedType<?>> processedAnnotatedTypes;

public ContainerLifecycleObserver()
{
processedAnnotatedTypes = new ArrayList<AnnotatedType<?>>();
}

public void observeProcessFoo(@Observes ProcessAnnotatedType<Foo> event)
{
this.processedAnnotatedTypes.add(event.getAnnotatedType());
}

public void observeProcessBaz(@Observes ProcessAnnotatedType<Baz> event)
{
this.processedAnnotatedTypes.add(event.getAnnotatedType());
}

public List<AnnotatedType<?>> getProcessedAnnotatedTypes()
{
return processedAnnotatedTypes;
}

}
Expand Up @@ -2,21 +2,30 @@

import static org.jboss.weld.environment.servlet.test.util.Deployments.baseDeployment;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.util.ArrayList;
import java.util.List;

import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.Extension;

import org.jboss.shrinkwrap.api.asset.Asset;
import org.jboss.shrinkwrap.api.asset.ByteArrayAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.weld.environment.servlet.test.util.BeansXml;
import org.junit.Test;

public class DeploymentOrderingTestBase
{

public static final Asset EXTENSION = new ByteArrayAsset(ContainerLifecycleObserver.class.getName().getBytes());


public static WebArchive deployment()
{
WebArchive war = baseDeployment().addPackage(DeploymentOrderingTestBase.class.getPackage()).addWebResource(new BeansXml().alternatives(Bar.class), "beans.xml").addWebResource(new BeansXml().alternatives(Garply.class), "classes/META-INF/beans.xml");
System.out.println(war.toString(true));
WebArchive war = baseDeployment().addPackage(DeploymentOrderingTestBase.class.getPackage()).addWebResource(new BeansXml().alternatives(Bar.class), "beans.xml").addWebResource(new BeansXml().alternatives(Garply.class), "classes/META-INF/beans.xml").addManifestResource(EXTENSION, "services/" + Extension.class.getName());
return war;
}

Expand All @@ -27,4 +36,19 @@ public void testBeansXmlMerged(BeanManager beanManager)
assertEquals(Garply.class, beanManager.resolve(beanManager.getBeans(Baz.class)).getBeanClass());
}

@Test
public void testProcessAnnotatedTypeCalledOnceOnlyPerType(ContainerLifecycleObserver containerLifecycleObserver)
{
assertEquals(4, containerLifecycleObserver.getProcessedAnnotatedTypes().size());
List<Class<?>> classes = new ArrayList<Class<?>>();
for (AnnotatedType<?> annotatedType : containerLifecycleObserver.getProcessedAnnotatedTypes())
{
classes.add(annotatedType.getJavaClass());
}
assertTrue(classes.contains(Foo.class));
assertTrue(classes.contains(Bar.class));
assertTrue(classes.contains(Baz.class));
assertTrue(classes.contains(Garply.class));
}

}

0 comments on commit 1114297

Please sign in to comment.