Skip to content

Commit

Permalink
WELD-560, Fix tests for BeansXml
Browse files Browse the repository at this point in the history
  • Loading branch information
pmuir committed Aug 17, 2010
1 parent f24397f commit 173da7f
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 56 deletions.
Expand Up @@ -22,10 +22,12 @@
import java.util.Collections;
import java.util.List;

import org.jboss.weld.exceptions.DefinitionException;
import org.jboss.weld.exceptions.IllegalStateException;
import org.jboss.weld.logging.messages.XmlMessage;
import org.jboss.weld.mock.MockEELifecycle;
import org.jboss.weld.mock.TestContainer;
import org.jboss.weld.xml.WeldXmlException;
import org.jboss.weld.resources.spi.ResourceLoadingException;
import org.junit.Assert;
import org.junit.Test;

Expand Down Expand Up @@ -59,15 +61,23 @@ public void run()
}
}

public void runAndExpect(WeldXmlException expected)
public void runAndExpect(Exception expected)
{
String errorCode = expected.getMessage().substring(0, 11);
try
{
run();
}
catch (WeldXmlException e)
catch (Exception e)
{
if (!expected.getClass().isAssignableFrom(e.getClass()))
{
assert false;
}
if (expected.getMessage() == null)
{
return;
}
String errorCode = expected.getMessage().substring(0, 11);
if (e.getMessage().startsWith(errorCode))
{
return;
Expand All @@ -78,7 +88,7 @@ public void runAndExpect(WeldXmlException expected)

}

private static void checkWithBeansXmlAndExpectException(String beansXml, WeldXmlException e)
private static void checkWithBeansXmlAndExpectException(String beansXml, Exception e)
{
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, Plain.class, IntBind.class);
List<URL> beansXmls = Arrays.asList(BeansXmlTest.class.getResource(beansXml));
Expand All @@ -90,19 +100,19 @@ private static void checkWithBeansXmlAndExpectException(String beansXml, WeldXml
@Test
public void testMultipleAlternativeBlocksFail()
{
checkWithBeansXmlAndExpectException("multipleAlternativeBlocks.xml", new WeldXmlException(XmlMessage.MULTIPLE_ALTERNATIVES));
checkWithBeansXmlAndExpectException("multipleAlternativeBlocks.xml", new DefinitionException(XmlMessage.MULTIPLE_ALTERNATIVES));
}

@Test
public void testMultipleDecoratorBlocksFail()
{
checkWithBeansXmlAndExpectException("multipleDecoratorBlocks.xml", new WeldXmlException(XmlMessage.MULTIPLE_DECORATORS));
checkWithBeansXmlAndExpectException("multipleDecoratorBlocks.xml", new DefinitionException(XmlMessage.MULTIPLE_DECORATORS));
}

@Test
public void testMultipleInterceptorBlocksFail()
{
checkWithBeansXmlAndExpectException("multipleInterceptorsBlocks.xml", new WeldXmlException(XmlMessage.MULTIPLE_INTERCEPTORS));
checkWithBeansXmlAndExpectException("multipleInterceptorsBlocks.xml", new DefinitionException(XmlMessage.MULTIPLE_INTERCEPTORS));
}

@Test
Expand All @@ -111,8 +121,8 @@ public void testAlternativesEnabled()
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, IntBind.class, Plain.class);
List<URL> beansXmls = Arrays.asList(getClass().getResource("alternative.xml"));
TestContainer container = new TestContainer(new MockEELifecycle(), beans, beansXmls).startContainer().ensureRequestActive();
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabledClasses().getAlternativeClasses().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabled().getAlternativeClasses().iterator().next());
container.stopContainer();
}

Expand All @@ -122,8 +132,8 @@ public void testDecoratorsEnabled()
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, IntBind.class, Plain.class);
List<URL> beansXmls = Arrays.asList(getClass().getResource("decorator.xml"));
TestContainer container = new TestContainer(new MockEELifecycle(), beans, beansXmls).startContainer().ensureRequestActive();
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getDecorators().size());
Assert.assertEquals(Dec.class, container.getBeanManager().getEnabledClasses().getDecorators().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getDecorators().size());
Assert.assertEquals(Dec.class, container.getBeanManager().getEnabled().getDecorators().iterator().next());
container.stopContainer();
}

Expand All @@ -133,8 +143,8 @@ public void testInterceptorsEnabled()
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, IntBind.class, Plain.class);
List<URL> beansXmls = Arrays.asList(getClass().getResource("interceptor.xml"));
TestContainer container = new TestContainer(new MockEELifecycle(), beans, beansXmls).startContainer().ensureRequestActive();
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getInterceptors().size());
Assert.assertEquals(Int.class, container.getBeanManager().getEnabledClasses().getInterceptors().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getInterceptors().size());
Assert.assertEquals(Int.class, container.getBeanManager().getEnabled().getInterceptors().iterator().next());
container.stopContainer();
}

Expand All @@ -144,19 +154,19 @@ public void testMergeBeansXmls()
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, IntBind.class, Plain.class);
List<URL> beansXmls = Arrays.asList(getClass().getResource("alternative.xml"), getClass().getResource("decorator.xml"), getClass().getResource("interceptor.xml"));
TestContainer container = new TestContainer(new MockEELifecycle(), beans, beansXmls).startContainer().ensureRequestActive();
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabledClasses().getAlternativeClasses().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getInterceptors().size());
Assert.assertEquals(Int.class, container.getBeanManager().getEnabledClasses().getInterceptors().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getDecorators().size());
Assert.assertEquals(Dec.class, container.getBeanManager().getEnabledClasses().getDecorators().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabled().getAlternativeClasses().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getInterceptors().size());
Assert.assertEquals(Int.class, container.getBeanManager().getEnabled().getInterceptors().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getDecorators().size());
Assert.assertEquals(Dec.class, container.getBeanManager().getEnabled().getDecorators().iterator().next());
container.stopContainer();
}

@Test
public void testBeansXmlDoesntExist()
{
checkWithBeansXmlAndExpectException("nope.xml", new WeldXmlException(XmlMessage.LOAD_ERROR));
checkWithBeansXmlAndExpectException("nope.xml", new IllegalStateException(XmlMessage.LOAD_ERROR));
}

// WELD-467
Expand All @@ -166,8 +176,8 @@ public void testNamespacedBeansXml()
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, IntBind.class, Plain.class);
List<URL> beansXmls = Arrays.asList(getClass().getResource("namespaced.xml"));
TestContainer container = new TestContainer(new MockEELifecycle(), beans, beansXmls).startContainer().ensureRequestActive();
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabledClasses().getAlternativeClasses().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabled().getAlternativeClasses().iterator().next());
container.stopContainer();
}

Expand All @@ -178,8 +188,8 @@ public void testNotDefaultNamespacedBeansXml()
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, IntBind.class, Plain.class);
List<URL> beansXmls = Arrays.asList(getClass().getResource("nonDefaultNamespaced.xml"));
TestContainer container = new TestContainer(new MockEELifecycle(), beans, beansXmls).startContainer().ensureRequestActive();
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabledClasses().getAlternativeClasses().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabled().getAlternativeClasses().iterator().next());
container.stopContainer();
}

Expand All @@ -192,28 +202,28 @@ public void testNonPrettyPrintedXML()
List<Class<?>> beans = Arrays.asList(Alt.class, Dec.class, Int.class, IntBind.class, Plain.class);
List<URL> beansXmls = Arrays.asList(getClass().getResource("nonPrettyPrinted.xml"));
TestContainer container = new TestContainer(new MockEELifecycle(), beans, beansXmls).startContainer().ensureRequestActive();
Assert.assertEquals(1, container.getBeanManager().getEnabledClasses().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabledClasses().getAlternativeClasses().iterator().next());
Assert.assertEquals(1, container.getBeanManager().getEnabled().getAlternativeClasses().size());
Assert.assertEquals(Alt.class, container.getBeanManager().getEnabled().getAlternativeClasses().iterator().next());
container.stopContainer();
}

@Test
public void testCannotLoadFile() throws MalformedURLException
{
List<Class<?>> beans = Collections.emptyList();
new FailedDeployment(beans, Arrays.asList(new URL("http://foo.bar/beans.xml"))).runAndExpect(new WeldXmlException(XmlMessage.LOAD_ERROR));
new FailedDeployment(beans, Arrays.asList(new URL("http://foo.bar/beans.xml"))).runAndExpect(new IllegalStateException(XmlMessage.LOAD_ERROR));
}

@Test
public void testParsingError()
{
checkWithBeansXmlAndExpectException("unparseable.xml", new WeldXmlException(XmlMessage.PARSING_ERROR));
checkWithBeansXmlAndExpectException("unparseable.xml", new IllegalStateException(XmlMessage.PARSING_ERROR));
}

@Test
public void testCannotLoadClass()
{
checkWithBeansXmlAndExpectException("unloadable.xml", new WeldXmlException(XmlMessage.CANNOT_LOAD_CLASS));
checkWithBeansXmlAndExpectException("unloadable.xml", new ResourceLoadingException());
}

}
Expand Up @@ -16,6 +16,9 @@
*/
package org.jboss.weld.tests.unit.deployment.structure.nonTransitiveResolution;

import java.util.Arrays;
import java.util.Collections;

import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
import org.jboss.weld.bootstrap.spi.Deployment;
import org.jboss.weld.manager.BeanManagerImpl;
Expand All @@ -25,6 +28,7 @@
import org.jboss.weld.mock.MockServletLifecycle;
import org.jboss.weld.mock.TestContainer;
import org.jboss.weld.test.Utils;
import org.jboss.weld.xml.BeansXmlImpl;
import org.junit.Assert;
import org.junit.Test;

Expand All @@ -38,7 +42,7 @@ public void testBeansXmlIsolation()
{
MockBeanDeploymentArchive jar1 = new MockBeanDeploymentArchive("first-jar", Alt.class);
MockBeanDeploymentArchive jar2 = new MockBeanDeploymentArchive("second-jar", Alt.class);
jar1.getBeansXml().add(getClass().getResource("beans.xml"));
jar1.setBeansXml(new BeansXmlImpl(Arrays.asList(Alt.class.getName()), Collections.<String>emptyList(), Collections.<String>emptyList(), Collections.<String>emptyList()));
MockBeanDeploymentArchive war = new MockBeanDeploymentArchive("war");
war.getBeanDeploymentArchives().add(jar1);
war.getBeanDeploymentArchives().add(jar2);
Expand All @@ -52,9 +56,9 @@ public void testBeansXmlIsolation()
BeanManagerImpl warBeanManager = container.getBeanManager();
BeanManagerImpl jar1BeanManager = container.getLifecycle().getBootstrap().getManager(jar1);
BeanManagerImpl jar2BeanManager = container.getLifecycle().getBootstrap().getManager(jar2);
Assert.assertTrue(warBeanManager.getEnabledClasses().getAlternativeClasses().isEmpty());
Assert.assertFalse(jar1BeanManager.getEnabledClasses().getAlternativeClasses().isEmpty());
Assert.assertTrue(jar2BeanManager.getEnabledClasses().getAlternativeClasses().isEmpty());
Assert.assertTrue(warBeanManager.getEnabled().getAlternativeClasses().isEmpty());
Assert.assertFalse(jar1BeanManager.getEnabled().getAlternativeClasses().isEmpty());
Assert.assertTrue(jar2BeanManager.getEnabled().getAlternativeClasses().isEmpty());
}
finally
{
Expand All @@ -73,8 +77,8 @@ public void testBeansXmlMultipleEnabling()
{
MockBeanDeploymentArchive jar1 = new MockBeanDeploymentArchive("first-jar", Alt.class);
MockBeanDeploymentArchive jar2 = new MockBeanDeploymentArchive("second-jar", Alt.class);
jar1.getBeansXml().add(getClass().getResource("beans.xml"));
jar2.getBeansXml().add(getClass().getResource("beans.xml"));
jar1.setBeansXml(new BeansXmlImpl(Arrays.asList(Alt.class.getName()), Collections.<String>emptyList(), Collections.<String>emptyList(), Collections.<String>emptyList()));
jar2.setBeansXml(new BeansXmlImpl(Arrays.asList(Alt.class.getName()), Collections.<String>emptyList(), Collections.<String>emptyList(), Collections.<String>emptyList()));
MockBeanDeploymentArchive war = new MockBeanDeploymentArchive("war");
war.getBeanDeploymentArchives().add(jar1);
war.getBeanDeploymentArchives().add(jar2);
Expand All @@ -88,9 +92,9 @@ public void testBeansXmlMultipleEnabling()
BeanManagerImpl warBeanManager = container.getBeanManager();
BeanManagerImpl jar1BeanManager = container.getLifecycle().getBootstrap().getManager(jar1);
BeanManagerImpl jar2BeanManager = container.getLifecycle().getBootstrap().getManager(jar2);
Assert.assertTrue(warBeanManager.getEnabledClasses().getAlternativeClasses().isEmpty());
Assert.assertFalse(jar1BeanManager.getEnabledClasses().getAlternativeClasses().isEmpty());
Assert.assertFalse(jar2BeanManager.getEnabledClasses().getAlternativeClasses().isEmpty());
Assert.assertTrue(warBeanManager.getEnabled().getAlternativeClasses().isEmpty());
Assert.assertFalse(jar1BeanManager.getEnabled().getAlternativeClasses().isEmpty());
Assert.assertFalse(jar2BeanManager.getEnabled().getAlternativeClasses().isEmpty());
}
finally
{
Expand Down
Expand Up @@ -16,6 +16,8 @@
*/
package org.jboss.weld.tests.unit.deployment.structure.resolution;

import static org.jboss.weld.manager.Enabled.EMPTY_ENABLED;

import java.util.Set;

import javax.enterprise.inject.spi.Bean;
Expand All @@ -31,7 +33,6 @@
import org.jboss.weld.introspector.WeldClass;
import org.jboss.weld.introspector.jlr.WeldClassImpl;
import org.jboss.weld.manager.BeanManagerImpl;
import org.jboss.weld.manager.EnabledClasses;
import org.jboss.weld.metadata.TypeStore;
import org.jboss.weld.metadata.cache.MetaAnnotationStore;
import org.jboss.weld.resources.ClassTransformer;
Expand Down Expand Up @@ -70,9 +71,9 @@ private void addBean(BeanManagerImpl manager, Class<?> c)
@Test
public void testAccessibleDynamicallySingleLevel()
{
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, new EnabledClasses());
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, EMPTY_ENABLED);
Container.initialize(root, services);
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, new EnabledClasses());
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, EMPTY_ENABLED);
addBean(root, Cow.class);
Assert.assertEquals(1, root.getBeans(Cow.class).size());
Assert.assertEquals(0, child.getBeans(Cow.class).size());
Expand All @@ -87,12 +88,12 @@ public void testAccessibleDynamicallySingleLevel()
@Test
public void testAccessibleThreeLevelsWithMultiple()
{
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, new EnabledClasses());
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, EMPTY_ENABLED);
Container.initialize(root, services);
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, new EnabledClasses());
BeanManagerImpl child1 = BeanManagerImpl.newRootManager("child1", services, new EnabledClasses());
BeanManagerImpl grandchild = BeanManagerImpl.newRootManager("grandchild", services, new EnabledClasses());
BeanManagerImpl greatGrandchild = BeanManagerImpl.newRootManager("greatGrandchild", services, new EnabledClasses());
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, EMPTY_ENABLED);
BeanManagerImpl child1 = BeanManagerImpl.newRootManager("child1", services, EMPTY_ENABLED);
BeanManagerImpl grandchild = BeanManagerImpl.newRootManager("grandchild", services, EMPTY_ENABLED);
BeanManagerImpl greatGrandchild = BeanManagerImpl.newRootManager("greatGrandchild", services, EMPTY_ENABLED);
child.addAccessibleBeanManager(root);
grandchild.addAccessibleBeanManager(child1);
grandchild.addAccessibleBeanManager(child);
Expand Down Expand Up @@ -129,10 +130,10 @@ public void testAccessibleThreeLevelsWithMultiple()
@Test
public void testSameManagerAddedTwice()
{
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, new EnabledClasses());
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, EMPTY_ENABLED);
Container.initialize(root, services);
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, new EnabledClasses());
BeanManagerImpl grandchild = BeanManagerImpl.newRootManager("grandchild", services, new EnabledClasses());
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, EMPTY_ENABLED);
BeanManagerImpl grandchild = BeanManagerImpl.newRootManager("grandchild", services, EMPTY_ENABLED);
grandchild.addAccessibleBeanManager(child);
child.addAccessibleBeanManager(root);
grandchild.addAccessibleBeanManager(root);
Expand All @@ -153,10 +154,10 @@ public void testSameManagerAddedTwice()
@Test
public void testCircular()
{
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, new EnabledClasses());
BeanManagerImpl root = BeanManagerImpl.newRootManager("root", services, EMPTY_ENABLED);
Container.initialize(root, services);
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, new EnabledClasses());
BeanManagerImpl grandchild = BeanManagerImpl.newRootManager("grandchild", services, new EnabledClasses());
BeanManagerImpl child = BeanManagerImpl.newRootManager("child", services, EMPTY_ENABLED);
BeanManagerImpl grandchild = BeanManagerImpl.newRootManager("grandchild", services, EMPTY_ENABLED);
grandchild.addAccessibleBeanManager(child);
child.addAccessibleBeanManager(root);
grandchild.addAccessibleBeanManager(root);
Expand Down

0 comments on commit 173da7f

Please sign in to comment.