You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2012/02/28 18:16:31 UTC

[2/2] git commit: DELTASPIKE-104 reStartContexts test

DELTASPIKE-104 reStartContexts test


Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/2a7ebf90
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/2a7ebf90
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/2a7ebf90

Branch: refs/heads/master
Commit: 2a7ebf9086e255cd0fa60e48fc495869ccf37524
Parents: 80e1d83
Author: gpetracek <gp...@apache.org>
Authored: Tue Feb 28 17:56:37 2012 +0100
Committer: gpetracek <gp...@apache.org>
Committed: Tue Feb 28 18:14:34 2012 +0100

----------------------------------------------------------------------
 .../deltaspike/cdise/tck/ContainerCtrlTckTest.java |   80 +++++++++++++--
 1 files changed, 72 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/2a7ebf90/deltaspike/cdise/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdise/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java b/deltaspike/cdise/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
index ec09fa2..ff9fc8f 100644
--- a/deltaspike/cdise/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
+++ b/deltaspike/cdise/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
@@ -19,17 +19,17 @@
 package org.apache.deltaspike.cdise.tck;
 
 
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-import java.util.Set;
-
 import org.apache.deltaspike.cdise.api.CdiContainer;
 import org.apache.deltaspike.cdise.api.CdiContainerLoader;
-
 import org.apache.deltaspike.cdise.tck.beans.CarRepair;
+import org.junit.Assert;
 import org.junit.Test;
 
-import org.junit.Assert;
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.ContextNotActiveException;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import java.util.Set;
 
 /**
  * TCK test for the {@link org.apache.deltaspike.cdise.api.CdiContainer}
@@ -37,7 +37,7 @@ import org.junit.Assert;
 public class ContainerCtrlTckTest
 {
     @Test
-    public void testContainerBoot() throws Exception
+    public void testContainerBoot()
     {
         CdiContainer cc = CdiContainerLoader.getCdiContainer();
         Assert.assertNotNull(cc);
@@ -62,7 +62,7 @@ public class ContainerCtrlTckTest
     }
 
     @Test
-    public void testSimpleContainerBoot() throws Exception
+    public void testSimpleContainerBoot()
     {
         CdiContainer cc = CdiContainerLoader.getCdiContainer();
         Assert.assertNotNull(cc);
@@ -83,4 +83,68 @@ public class ContainerCtrlTckTest
 
         cc.stop();
     }
+
+    //X TODO reactivate after the update to owb 1.1.4
+    //@Test
+
+    /**
+     * Stops and starts: application-, session- and request-scope.
+     * <p/>
+     * application-scoped instance has a ref to
+     * request-scoped instance which has a ref to
+     * session-scoped instance.
+     * <p/>
+     * If the deepest ref has the expected value, all levels in between were resetted correctly.
+     */
+    public void reStartContexts()
+    {
+        CdiContainer cdiContainer = CdiContainerLoader.getCdiContainer();
+        Assert.assertNotNull(cdiContainer);
+
+        cdiContainer.start();
+
+        BeanManager beanManager = cdiContainer.getBeanManager();
+        Assert.assertNotNull(beanManager);
+
+        Set<Bean<?>> beans = beanManager.getBeans(CarRepair.class);
+        Bean<?> bean = beanManager.resolve(beans);
+
+        CarRepair carRepair = (CarRepair)
+            beanManager.getReference(bean, CarRepair.class, beanManager.createCreationalContext(bean));
+
+        Assert.assertNotNull(carRepair);
+
+        Assert.assertNotNull(carRepair.getCar());
+        Assert.assertNotNull(carRepair.getCar().getUsr());
+
+        carRepair.getCar().getUsr().setName("tester");
+        Assert.assertEquals("tester", carRepair.getCar().getUsr().getName());
+
+        cdiContainer.stopContexts();
+        cdiContainer.stopContext(ApplicationScoped.class); //workaround for weld - see WELD-1072
+
+        carRepair = (CarRepair)
+            beanManager.getReference(bean, CarRepair.class, beanManager.createCreationalContext(bean));
+
+        try
+        {
+            Assert.assertNotNull(carRepair.getCar());
+            Assert.fail();
+        }
+        catch (ContextNotActiveException e)
+        {
+            //exception expected
+        }
+
+        cdiContainer.startContexts();
+
+        carRepair = (CarRepair)
+            beanManager.getReference(bean, CarRepair.class, beanManager.createCreationalContext(bean));
+
+        Assert.assertNotNull(carRepair.getCar());
+        Assert.assertNotNull(carRepair.getCar().getUsr());
+        Assert.assertNull(carRepair.getCar().getUsr().getName());
+
+        cdiContainer.stop();
+    }
 }