[
https://issues.jboss.org/browse/ARQ-1255?page=com.atlassian.jira.plugin.s...
]
Antonin Stefanutti commented on ARQ-1255:
-----------------------------------------
Provided that Weld SE container will support multiple deployments, shouldn't the test
class be a _{{@Deployment}} unit_ along with the other ones (or scanned by CDI as you
mentioned) be enough to solve the second issue, at least for the two test cases that I
attached.
The second issue that you're mentioning, if I understand it correctly, is going a step
further with an additional use case where {{@Inject}} annotated fields/methods would be
filtered given the specified {{@Deployment}} to avoid having {{DeploymentException}}
thrown. However, in the two attached use cases, this is not really needed and that would
make sense functionally speaking to have that exception raised if I were using
{{@OperateOnDeployment("bean2-jar")}} instead of
{{@OperateOnDeployment("beans-jar")}} in test case 2 for example.
Multiple deployments is not working in Weld SE container
--------------------------------------------------------
Key: ARQ-1255
URL:
https://issues.jboss.org/browse/ARQ-1255
Project: Arquillian
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Weld Containers
Affects Versions: 1.0.0.CR5
Reporter: Antonin Stefanutti
Attachments: Bean1.java, Bean2.java, MultipleDeploymentArquilianCdiTest.java,
OperateOnDeploymentArquilianCdiTest.java, pom.xml, test_case_1_stacktrace.txt,
test_case_2_stacktrace.txt
As described in [Multiple
Deployments|https://docs.jboss.org/author/display/ARQ/Multiple+Deployments], multiple
{{@Deployment}} annotated methods can be declared in a test class. In addition, the
{{@OperateOnDeployment}} annotation enables the selection of a particular _deployment_ per
test method.
However, when using Arquillian with a Weld SE container, the CDI container isn't
deployed with the expected archives which ends up having {{DeploymentException}} thrown,
as illustrated in the test cases below:
*Test case 1:*
{code}
@RunWith(Arquillian.class)
public class MultipleDeploymentArquilianCdiTest {
@Inject
private Bean1 bean1;
@Inject
private Bean2 bean2;
@Deployment(name = "bean1-jar")
public static Archive<?> createBean1Jar() {
return
ShrinkWrap.create(JavaArchive.class).addClass(Bean1.class).addAsManifestResource(EmptyAsset.INSTANCE,
"beans.xml");
}
@Deployment(name = "bean2-jar")
public static Archive<?> createBean2Jar() {
return
ShrinkWrap.create(JavaArchive.class).addClass(Bean2.class).addAsManifestResource(EmptyAsset.INSTANCE,
"beans.xml");
}
@Test
public void multiDeploymentTest() {
assertNotNull(bean1);
assertNotNull(bean2);
}
}
{code}
*Test case 2:*
{code}
@RunWith(Arquillian.class)
public class OperateOnDeploymentArquilianCdiTest {
@Inject
private Bean1 bean1;
@Inject
private Bean2 bean2;
@Deployment(name = "beans-jar")
public static Archive<?> createBeansJar() {
return
ShrinkWrap.create(JavaArchive.class).addClass(Bean1.class).addClass(Bean2.class).addAsManifestResource(EmptyAsset.INSTANCE,
"beans.xml");
}
@Deployment(name = "bean1-jar")
public static Archive<?> createBean1Jar() {
return
ShrinkWrap.create(JavaArchive.class).addClass(Bean1.class).addAsManifestResource(EmptyAsset.INSTANCE,
"beans.xml");
}
@Deployment(name = "bean2-jar")
public static Archive<?> createBean2Jar() {
return
ShrinkWrap.create(JavaArchive.class).addClass(Bean2.class).addAsManifestResource(EmptyAsset.INSTANCE,
"beans.xml");
}
@Test
@OperateOnDeployment("beans-jar")
public void singleDeploymentTest() {
assertNotNull(bean1);
assertNotNull(bean2);
}
}
{code}
In both cases, the following exception is thrown:
{code}
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for
type [Bean2] with qualifiers [@Default] at injection point [[field] @Inject private
arquillian.test.OperateOnDeploymentArquilianCdiTest.bean2]
{code}
Note that test case 2 is working when only {{@Deployment(name = "beans-jar")}}
is declared.
Test classes and the {{pom.xml}} are attached.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira