details: https://code.openbravo.com/erp/devel/pi/rev/c919c3df8538
changeset: 32676:c919c3df8538
user: Carlos Aristu <carlos.aristu <at> openbravo.com>
date: Wed Sep 13 09:59:56 2017 +0200
summary: related to issue 36834: Added test case for OBBindings
diffstat:
src-test/src/org/openbravo/test/AllAntTaskTests.java | 4 +-
src-test/src/org/openbravo/test/AllTests.java | 6 +-
src-test/src/org/openbravo/test/AntTaskTests.java | 6 +-
src-test/src/org/openbravo/test/expression/OBBindingsTest.java | 143
++++++++++
4 files changed, 154 insertions(+), 5 deletions(-)
diffs (228 lines):
diff -r 29adad2927d4 -r c919c3df8538
src-test/src/org/openbravo/test/AllAntTaskTests.java
--- a/src-test/src/org/openbravo/test/AllAntTaskTests.java Wed Sep 13
09:26:50 2017 +0200
+++ b/src-test/src/org/openbravo/test/AllAntTaskTests.java Wed Sep 13
09:59:56 2017 +0200
@@ -25,6 +25,7 @@
import org.openbravo.base.weld.test.testinfrastructure.CdiInfrastructure;
import org.openbravo.base.weld.test.testinfrastructure.DalPersistanceEventTest;
import org.openbravo.base.weld.test.testinfrastructure.ParameterizedCdi;
+import org.openbravo.client.application.OBBindings;
import org.openbravo.client.application.test.ADCSInitialization;
import org.openbravo.client.application.test.ApplicationTest;
import org.openbravo.client.application.test.DisplayLogicAtServerLevelTest;
@@ -150,7 +151,8 @@
PersistanceObserver.class, //
// expression
- EvaluationTest.class,
+ EvaluationTest.class, //
+ OBBindings.class,
// model
RuntimeModelTest.class, //
diff -r 29adad2927d4 -r c919c3df8538
src-test/src/org/openbravo/test/AllTests.java
--- a/src-test/src/org/openbravo/test/AllTests.java Wed Sep 13 09:26:50
2017 +0200
+++ b/src-test/src/org/openbravo/test/AllTests.java Wed Sep 13 09:59:56
2017 +0200
@@ -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) 2008-2015 Openbravo SLU
+ * All portions are Copyright (C) 2008-2017 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -23,6 +23,7 @@
import org.junit.runners.Suite;
import org.openbravo.advpaymentmngt.test.FundsTransferTest;
import org.openbravo.base.weld.test.testinfrastructure.CdiInfrastructure;
+import org.openbravo.client.application.OBBindings;
import org.openbravo.erpCommon.info.ClassicSelectorTest;
import org.openbravo.test.centralbroker.CentralBrokerTest;
import org.openbravo.test.dal.ComputedColumnsTest;
@@ -91,7 +92,8 @@
TrlColumnsOraTypeTest.class,
// expression
- EvaluationTest.class,
+ EvaluationTest.class, //
+ OBBindings.class,
// xml
EntityXMLImportTestBusinessObject.class, //
diff -r 29adad2927d4 -r c919c3df8538
src-test/src/org/openbravo/test/AntTaskTests.java
--- a/src-test/src/org/openbravo/test/AntTaskTests.java Wed Sep 13 09:26:50
2017 +0200
+++ b/src-test/src/org/openbravo/test/AntTaskTests.java Wed Sep 13 09:59:56
2017 +0200
@@ -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-2017 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -22,6 +22,7 @@
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.openbravo.base.weld.test.testinfrastructure.CdiInfrastructure;
+import org.openbravo.client.application.OBBindings;
import org.openbravo.erpCommon.info.ClassicSelectorTest;
import org.openbravo.test.dal.ComputedColumnsTest;
import org.openbravo.test.dal.DalComplexQueryRequisitionTest;
@@ -104,7 +105,8 @@
ComputedColumnsTest.class,
// expression
- EvaluationTest.class,
+ EvaluationTest.class, //
+ OBBindings.class,
// model
RuntimeModelTest.class, OneToManyTest.class, //
diff -r 29adad2927d4 -r c919c3df8538
src-test/src/org/openbravo/test/expression/OBBindingsTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src-test/src/org/openbravo/test/expression/OBBindingsTest.java Wed Sep
13 09:59:56 2017 +0200
@@ -0,0 +1,143 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.1 (the "License"), being the Mozilla Public License
+ * Version 1.1 with a permitted attribution clause; you may not use this
+ * file except in compliance with the License. You may obtain a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2017 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s): ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.test.expression;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertThat;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openbravo.client.application.OBBindings;
+import org.openbravo.client.application.OBBindingsConstants;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.test.base.OBBaseTest;
+import org.openbravo.test.base.mock.HttpServletRequestMock;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Test the result of evaluating JavaScript expressions configuring {@link
OBBindings} as the Java
+ * binding to be used by the engine in the execution of the scripts.
+ */
+public class OBBindingsTest extends OBBaseTest {
+ private static final Logger log =
LoggerFactory.getLogger(OBBindingsTest.class);
+ private static final String DEFAULT = "DEFAULT";
+ private static final String YES = "Y";
+ private ScriptEngine engine;
+ private HttpServletRequestMock request;
+
+ @Before
+ public void initScriptEngine() throws Exception {
+ request = new HttpServletRequestMock();
+ Map<String, String> parameters = new HashMap<>();
+ parameters.put(OBBindingsConstants.COMMAND_TYPE_PARAM, DEFAULT);
+ parameters.put(OBBindingsConstants.POSTED_PARAM, YES);
+ // initialize Javascript engine
+ engine = new ScriptEngineManager().getEngineByName("js");
+ engine.put("OB", new OBBindings(OBContext.getOBContext(), parameters,
request.getSession()));
+ log.info("Using script engine {}", engine.getClass().getSimpleName());
+ }
+
+ @Test
+ public void formatNowDate() throws ScriptException {
+ Object result = engine.eval("OB.formatDate(new Date())");
+ String expectedDate = new SimpleDateFormat("dd-MM-yyyy").format(new
Date());
+ assertThat(result.toString(), equalTo(expectedDate));
+ }
+
+ @Test
+ public void formatDate() throws ScriptException {
+ Object result = engine.eval("OB.formatDate(new Date('12/29/2017'))");
+ assertThat(result.toString(), equalTo("29-12-2017"));
+ }
+
+ @Test
+ public void customFormatDate() throws ScriptException {
+ Object result = engine.eval("OB.formatDate(new
Date('12/29/2017'),'yyyy/MM/dd')");
+ assertThat(result.toString(), equalTo("2017/12/29"));
+ }
+
+ @Test
+ public void formatDateTime() throws ScriptException {
+ Object result = engine.eval("OB.formatDateTime(new Date('12/29/2017
16:29:21'))");
+ assertThat(result.toString(), equalTo("29-12-2017 16:29:21"));
+ }
+
+ @Test
+ public void parseDate() throws ScriptException, ParseException {
+ Date result = (Date) engine.eval("OB.parseDate('29-12-2017')");
+ Date expectedDate = new SimpleDateFormat("dd-MM-yyyy").parse("29-12-2017");
+ assertThat(result, equalTo(expectedDate));
+ }
+
+ @Test
+ public void customParseDate() throws ScriptException, ParseException {
+ Date result = (Date)
engine.eval("OB.parseDate('2017/12/29','yyyy/MM/dd')");
+ Date expectedDate = new SimpleDateFormat("dd-MM-yyyy").parse("29-12-2017");
+ assertThat(result, equalTo(expectedDate));
+ }
+
+ @Test
+ public void parseDateTime() throws ScriptException, ParseException {
+ // parseDateTime is only called from the client and assumes that the dates
that arrive are in
+ // the UTC timezone and transforms it into the local time
+ Date result = (Date)
engine.eval("OB.parseDateTime('2017-12-29T16:29:21')");
+ SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
+ Date expectedDate = convertToLocalTime(sdf.parse("29-12-2017 16:29:21"));
+ assertThat(result, equalTo(expectedDate));
+ }
+
+ private Date convertToLocalTime(Date UTCTime) {
+ Calendar localTime = Calendar.getInstance();
+ localTime.setTime(UTCTime);
+ int gmtMillisecondOffset = (localTime.get(Calendar.ZONE_OFFSET) + localTime
+ .get(Calendar.DST_OFFSET));
+ localTime.add(Calendar.MILLISECOND, gmtMillisecondOffset);
+ return localTime.getTime();
+ }
+
+ @Test
+ public void getContextInfo() throws ScriptException {
+ Object result = engine.eval("OB.getContext().getCurrentClient().id");
+ assertThat(result.toString(), equalTo(TEST_CLIENT_ID));
+ }
+
+ @Test
+ public void getStringValueFromRequestMap() throws ScriptException {
+ String result = (String) engine.eval("OB.getCommandType()");
+ assertThat(result, equalTo(DEFAULT));
+ }
+
+ @Test
+ public void getBooleanValueFromRequestMap() throws ScriptException {
+ Boolean result = (Boolean) engine.eval("OB.isPosted()");
+ assertThat(result, equalTo(Boolean.TRUE));
+ }
+}
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits