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