details:   https://code.openbravo.com/erp/devel/pi/rev/6406c7c2cfbe
changeset: 28826:6406c7c2cfbe
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Fri Mar 18 13:00:05 2016 +0100
summary:   fixed bug 32507: NPE when executing 
GenerateComponentTest.testStaticResources

  StaticResourcesComponent assumes there is a ServletContext to read templates
  based on it. As test is executed out of Tomcat there is no ServletContext,
  causing NPE.

  Fixed by mocking a ServletContext.

  Additionally ApplicationComponent assumes there is a session to get format 
values
  from causing also NPE when executing as test.

  Fixed by dealing with this case and returning an empty map.

details:   https://code.openbravo.com/erp/devel/pi/rev/c5a9d7bf8b79
changeset: 28827:c5a9d7bf8b79
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Fri Mar 18 13:01:38 2016 +0100
summary:   fixed 32506: GenerateComponentTest.testApplication test case is 
ignored

  It failed because of same reasons of #32507.

  Having this issue fixed we can now enable it again.

diffstat:

 
modules/org.openbravo.client.kernel/src-test/org/openbravo/client/kernel/freemarker/test/GenerateComponentTest.java
 |  29 +++++++--
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationComponent.java
                       |  11 +++-
 2 files changed, 30 insertions(+), 10 deletions(-)

diffs (103 lines):

diff -r 6faaf3bc09ce -r c5a9d7bf8b79 
modules/org.openbravo.client.kernel/src-test/org/openbravo/client/kernel/freemarker/test/GenerateComponentTest.java
--- 
a/modules/org.openbravo.client.kernel/src-test/org/openbravo/client/kernel/freemarker/test/GenerateComponentTest.java
       Fri Mar 18 14:12:54 2016 +0000
+++ 
b/modules/org.openbravo.client.kernel/src-test/org/openbravo/client/kernel/freemarker/test/GenerateComponentTest.java
       Fri Mar 18 13:01:38 2016 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2009-2015 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2016 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -20,17 +20,21 @@
 package org.openbravo.client.kernel.freemarker.test;
 
 import java.util.HashMap;
+import java.util.Map;
 
 import javax.inject.Inject;
 
-import org.junit.Ignore;
+import 
org.jboss.arquillian.container.weld.ee.embedded_1_1.mock.MockServletContext;
 import org.junit.Test;
+import org.openbravo.base.session.OBPropertiesProvider;
 import org.openbravo.base.weld.test.WeldBaseTest;
+import org.openbravo.client.kernel.BaseComponentProvider.ComponentResource;
 import org.openbravo.client.kernel.Component;
 import org.openbravo.client.kernel.ComponentGenerator;
 import org.openbravo.client.kernel.ComponentProvider;
 import org.openbravo.client.kernel.KernelComponentProvider;
 import org.openbravo.client.kernel.KernelConstants;
+import org.openbravo.dal.core.DalContextListener;
 
 /**
  * Test the generation of several kernel components.
@@ -45,24 +49,33 @@
   private ComponentProvider kernelComponentProvider;
 
   @Test
-  @Ignore // TODO: failing, check why
   public void testApplication() throws Exception {
-    generateComponent(KernelConstants.APPLICATION_COMPONENT_ID);
+    generateComponent(KernelConstants.APPLICATION_COMPONENT_ID, null);
   }
 
+  @SuppressWarnings("serial")
   @Test
   public void testStaticResources() throws Exception {
-    generateComponent(KernelConstants.RESOURCE_COMPONENT_ID);
+    final MockServletContext mockContext = new 
MockServletContext(OBPropertiesProvider
+        .getInstance().getOpenbravoProperties().getProperty("source.path")
+        + "/WebContent");
+    DalContextListener.setServletContext(mockContext);
+    generateComponent(KernelConstants.RESOURCE_COMPONENT_ID, new 
HashMap<String, Object>() {
+      {
+        put(KernelConstants.APP_NAME_PARAMETER, ComponentResource.APP_OB3);
+        put(KernelConstants.SERVLET_CONTEXT, mockContext);
+      }
+    });
   }
 
   @Test
   public void testLabels() throws Exception {
-    generateComponent(KernelConstants.LABELS_COMPONENT_ID);
+    generateComponent(KernelConstants.LABELS_COMPONENT_ID, null);
   }
 
-  protected void generateComponent(String componentID) {
+  protected void generateComponent(String componentID, Map<String, Object> 
params) {
     final Component component = 
kernelComponentProvider.getComponent(componentID,
-        new HashMap<String, Object>());
+        params == null ? new HashMap<String, Object>() : params);
 
     final String output = ComponentGenerator.getInstance().generate(component);
     System.err.println(output);
diff -r 6faaf3bc09ce -r c5a9d7bf8b79 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationComponent.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationComponent.java
     Fri Mar 18 14:12:54 2016 +0000
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationComponent.java
     Fri Mar 18 13:01:38 2016 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2010-2011 Openbravo SLU 
+ * All portions are Copyright (C) 2010-2016 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -69,7 +69,14 @@
 
   @SuppressWarnings("unchecked")
   public Map<String, String> getFormats() {
-    return (HashMap<String, String>) 
RequestContext.get().getSessionAttribute("#formatMap");
+    RequestContext rc = RequestContext.get();
+
+    if (rc.getRequest() != null) {
+      return (HashMap<String, String>) rc.getSessionAttribute("#formatMap");
+    } else {
+      // when generating components in testing, there is no request, so let's 
mock it
+      return new HashMap<String, String>();
+    }
   }
 
   public boolean isTestEnvironment() {

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to