diff --git a/impl/core/src/test/java/management/ManagementTestCase.java b/impl/core/src/test/java/management/ManagementTestCase.java index a6dfbc6..9bc802b 100644 --- a/impl/core/src/test/java/management/ManagementTestCase.java +++ b/impl/core/src/test/java/management/ManagementTestCase.java @@ -42,6 +42,8 @@ import junit.framework.Assert; import management.testclasses.DummyManagedClass; import management.testclasses.DummyManagementExtension; import management.testclasses.ManagedClassStore; +import management.testclasses.RequestScopeBeanClient; +import management.testclasses.RequestScopedClass; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; @@ -75,7 +77,11 @@ public class ManagementTestCase { new File("src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension"), "services/javax.enterprise.inject.spi.Extension") .addPackages(false, ManagementTestCase.class.getPackage()) - .addClasses(DummyManagementExtension.class, DummyManagedClass.class, ManagedClassStore.class); + .addClasses(DummyManagementExtension.class + , DummyManagedClass.class + , ManagedClassStore.class + , RequestScopeBeanClient.class + , RequestScopedClass.class); } @Test @@ -161,4 +167,18 @@ public class ManagementTestCase { } } + + @Test + public void testRequestScopedOperation() { + ManagedClassStore store = Beans.getReference(ManagedClassStore.class); + + //Esta operação faz multiplos acessos a um bean RequestScoped. Durante a operação todos os acessos devem + //operar sob a mesma instância, mas uma segunda invocação deve operar em uma instância nova + Object info = store.invoke(DummyManagedClass.class, "requestScopedOperation"); + Assert.assertEquals("-OPERATION ONE CALLED--OPERATION TWO CALLED-", info); + + //Segunda invocação para testar se uma nova instância é criada, já que esse é um novo request. + info = store.invoke(DummyManagedClass.class, "requestScopedOperation"); + Assert.assertEquals("-OPERATION ONE CALLED--OPERATION TWO CALLED-", info); + } } diff --git a/impl/core/src/test/java/management/testclasses/DummyManagedClass.java b/impl/core/src/test/java/management/testclasses/DummyManagedClass.java index 54198bf..a5d44b5 100644 --- a/impl/core/src/test/java/management/testclasses/DummyManagedClass.java +++ b/impl/core/src/test/java/management/testclasses/DummyManagedClass.java @@ -43,6 +43,7 @@ import javax.validation.constraints.NotNull; import br.gov.frameworkdemoiselle.annotation.ManagedOperation; import br.gov.frameworkdemoiselle.annotation.ManagedProperty; import br.gov.frameworkdemoiselle.stereotype.ManagementController; +import br.gov.frameworkdemoiselle.util.Beans; @ManagementController public class DummyManagedClass { @@ -196,7 +197,15 @@ public class DummyManagedClass { this.gender = gender; } - + @ManagedOperation + public String requestScopedOperation(){ + RequestScopeBeanClient client = Beans.getReference(RequestScopeBeanClient.class); + client.operationOne(); + client.operationTwo(); + + RequestScopedClass bean = Beans.getReference(RequestScopedClass.class); + return bean.getInfo(); + } } diff --git a/impl/core/src/test/java/management/testclasses/RequestScopeBeanClient.java b/impl/core/src/test/java/management/testclasses/RequestScopeBeanClient.java new file mode 100644 index 0000000..e218371 --- /dev/null +++ b/impl/core/src/test/java/management/testclasses/RequestScopeBeanClient.java @@ -0,0 +1,22 @@ +package management.testclasses; + +import br.gov.frameworkdemoiselle.util.Beans; + + +public class RequestScopeBeanClient { + + public void operationOne(){ + + RequestScopedClass bean = Beans.getReference(RequestScopedClass.class); + bean.setInfo( bean.getInfo() + "-OPERATION ONE CALLED-"); + + } + + public void operationTwo(){ + + RequestScopedClass bean = Beans.getReference(RequestScopedClass.class); + bean.setInfo( bean.getInfo() + "-OPERATION TWO CALLED-"); + + } + +} diff --git a/impl/core/src/test/java/management/testclasses/RequestScopedClass.java b/impl/core/src/test/java/management/testclasses/RequestScopedClass.java new file mode 100644 index 0000000..70ff672 --- /dev/null +++ b/impl/core/src/test/java/management/testclasses/RequestScopedClass.java @@ -0,0 +1,22 @@ +package management.testclasses; + +import javax.enterprise.context.RequestScoped; + +@RequestScoped +public class RequestScopedClass { + + private String info = ""; + + + public String getInfo() { + return info; + } + + + public void setInfo(String info) { + this.info = info; + } + + + +} diff --git a/parent/bom/pom.xml b/parent/bom/pom.xml index 9f6364a..fd893c8 100755 --- a/parent/bom/pom.xml +++ b/parent/bom/pom.xml @@ -349,6 +349,11 @@ ${arquillian.weld.se.embedded.version} + org.jboss.arquillian.container + arquillian-weld-ee-embedded-1.1 + ${arquillian.weld.ee.embedded.version} + + org.jboss.weld.se weld-se-core ${weld.version} @@ -399,6 +404,7 @@ 1.0.3.Final 1.0.0.CR6 + 1.0.0.CR6 1.4.6 3.4 -- libgit2 0.21.2