Author: hansbak
Date: Tue Aug 30 04:25:28 2011
New Revision: 1163084
URL: http://svn.apache.org/viewvc?rev=1163084&view=rev
Log:
junit tests to test the change in r1163083 to have invoicing per order/or shipment. Also added spring jar files to be able to
test ofbiz events.
Added:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml
(with props)
ofbiz/trunk/framework/testtools/lib/org.springframework.core-3.1.0.M2.jar
(with props)
ofbiz/trunk/framework/testtools/lib/org.springframework.test-3.1.0.M2.jar
(with props)
ofbiz/trunk/framework/testtools/lib/org.springframework.web-3.1.0.M2.jar
(with props)
Modified:
ofbiz/trunk/.classpath
ofbiz/trunk/applications/accounting/testdef/invoicetests.xml
ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/SimpleMethodTest.java
ofbiz/trunk/specialpurpose/ecommerce/data/DemoOrderTestData.xml
Modified: ofbiz/trunk/.classpath
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/.classpath?rev=1163084&r1=1163083&r2=1163084&view=diff
==============================================================================
--- ofbiz/trunk/.classpath (original)
+++ ofbiz/trunk/.classpath Tue Aug 30 04:25:28 2011
@@ -158,6 +158,9 @@
<classpathentry kind="lib" path="framework/service/lib/neethi-2.0.4.jar"/>
<classpathentry kind="lib"
path="framework/service/lib/XmlSchema-1.4.3.jar"/>
<classpathentry kind="lib"
path="framework/testtools/lib/selenium-java-client-driver.jar"/>
+ <classpathentry kind="lib"
path="framework/testtools/lib/org.springframework.test-3.1.0.M2.jar"/>
+ <classpathentry kind="lib"
path="framework/testtools/lib/org.springframework.web-3.1.0.M2.jar"/>
+ <classpathentry kind="lib"
path="framework/testtools/lib/org.springframework.core-3.1.0.M2.jar"/>
<classpathentry kind="lib"
path="framework/webapp/lib/DataVision-1.0.0.jar"/>
<classpathentry kind="lib" path="framework/webapp/lib/ezmorph-0.9.1.jar"/>
<classpathentry kind="lib" path="framework/webapp/lib/iText-2.1.7.jar"/>
Added:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml?rev=1163084&view=auto
==============================================================================
---
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml
(added)
+++
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml
Tue Aug 30 04:25:28 2011
@@ -0,0 +1,529 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd">
+
+ <simple-method method-name="testInvoicePerShipmentSetFalse" short-description="Test Invoice Per Shipment Set False"
login-required="false">
+ <!-- Test Invoice Per Shipment
+ Step 1) Set create.invoice.per.shipment=N in
AccountingConfig.properties file.
+ Step 2) Create order and approve order.
+ Step 3) Pack Shipment For Ship Group.
+ Step 4) Check invoice should not created.
+ -->
+ <!-- Step 1 -->
+ <call-bsh><![CDATA[
+ import org.ofbiz.base.util.UtilProperties;
+ UtilProperties.setPropertyValue("AccountingConfig.properties",
"create.invoice.per.shipment", "N");
+ ]]></call-bsh>
+ <log level="info" message="===== >>> Set Accounting.properties /
create.invoice.per.shipment = N"/>
+ <!-- Step 2 -->
+ <field-to-session field="nullField" session-name="orderMode"/>
+ <set field="request" from-field="parameters.request"/>
+ <set field="response" from-field="parameters.response"/>
+ <call-class-method method-name="routeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : routeOrderEntry, Response :
${result}"/>
+ <entity-one value-field="userLogin" entity-name="UserLogin">
+ <field-map field-name="userLoginId" value="admin"/>
+ </entity-one>
+ <call-bsh><![CDATA[
+ request.setParameter("orderMode", "SALES_ORDER");
+ request.setParameter("productStoreId", "9000");
+ request.setParameter("partyId", "DemoCustomer");
+ request.setParameter("currencyUom", "USD");
+ session = request.getSession();
+ session.setAttribute("userLogin", userLogin);
+ ]]></call-bsh>
+ <call-class-method method-name="initializeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : initializeOrderEntry, Response :
${result}"/>
+ <call-class-method method-name="setOrderCurrencyAgreementShipDates"
class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event :
setOrderCurrencyAgreementShipDates, Response : ${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("add_product_id", "GZ-1000");
+ ]]></call-bsh>
+ <call-class-method method-name="addToCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : addToCart, Response :
${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("checkoutpage", "quick");
+ request.setParameter("shipping_contact_mech_id", "9015");
+ request.setParameter("shipping_method", "GROUND@UPS");
+ request.setParameter("checkOutPaymentId", "EXT_COD");
+ request.setParameter("is_gift", "false");
+ request.setParameter("may_split", "false");
+ ]]></call-bsh>
+ <field-to-request field="nullField" request-name="shoppingCart"/>
+ <call-class-method method-name="setQuickCheckOutOptions" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : setQuickCheckOutOptions, Response
: ${result}"/>
+ <call-class-method method-name="createOrder"
class-name="org.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : createOrder, Response :
${result}"/>
+ <call-class-method method-name="processPayment" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : processPayment, Response :
${result}"/>
+ <call-service-asynch service-name="sendOrderConfirmation"/>
+ <call-class-method method-name="destroyCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : destroyCart, Response =
${result}"/>
+ <!-- Step 3 -->
+ <entity-condition list="orderHeaders" entity-name="OrderHeader">
+ <condition-expr field-name="orderTypeId" value="SALES_ORDER"/>
+ <order-by field-name="-entryDate"/>
+ </entity-condition>
+ <first-from-list entry="orderHeader" list="orderHeaders"/>
+ <log level="info"
message="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx :
${orderHeader}"/>
+ <call-bsh><![CDATA[
+ import org.ofbiz.shipment.packing.PackingSession;
+ packingSession = new PackingSession(dispatcher, userLogin);
+ packingSession.setPrimaryOrderId(orderHeader.get("orderId"));
+ packingSession.setPrimaryShipGroupSeqId("00001");
+ parameters.put("packingSession", packingSession);
+ ]]></call-bsh>
+ <set field="packInput.orderId" from-field="orderHeader.orderId"/>
+ <set field="packInput.shipGroupSeqId" value="00001"/>
+ <set field="packInput.packingSession"
from-field="parameters.packingSession"/>
+ <set field="packInput.nextPackageSeq" value="1" type="Integer"/>
+ <set field="packInput.userLogin" from-field="userLogin"/>
+ <!-- Items -->
+ <set field="packInput.selInfo._1" value="Y"/>
+ <set field="packInput.pkgInfo._1" value="1"/>
+ <set field="packInput.qtyInfo._1" value="1"/>
+ <set field="packInput.prdInfo._1" value="GZ-1000"/>
+ <set field="packInput.iteInfo._1" value="00001"/>
+ <set field="packInput.wgtInfo._1" value="0"/>
+ <set field="packInput.boxTypeInfo._1" value="FX10KGBOX"/>
+ <set field="packInput.numPackagesInfo._1" value="1"/>
+ <call-service service-name="packBulkItems" in-map-name="packInput">
+ <result-to-field result-name="responseMessage"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: packBulkItems, Response =
${responseMessage}"/>
+ <set-service-fields service-name="completePack" to-map="completePackInput"
map="packInput"/>
+ <call-service service-name="completePack"
in-map-name="completePackInput">
+ <result-to-field result-name="shipmentId"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: completePack, shipmentId =
${shipmentId}"/>
+ <!-- Step 4 -->
+ <entity-and list="invoices"
entity-name="OrderItemBillingAndInvoiceAndItem">
+ <field-map field-name="orderId" from-field="orderHeader.orderId"/>
+ </entity-and>
+ <assert>
+ <if-empty field="invoices"/>
+ </assert>
+ <check-errors/>
+ </simple-method>
+ <simple-method method-name="testInvoicePerShipmentSetTrue" short-description="Test Invoice Per Shipment Set True"
login-required="false">
+ <!-- Test Invoice Per Shipment
+ Step 1) Set create.invoice.per.shipment=N in
AccountingConfig.properties file.
+ Step 2) Create order and approve order.
+ Step 3) Pack Shipment For Ship Group.
+ Step 4) Check invoice should created.
+ -->
+ <!-- Step 1 -->
+ <call-bsh><![CDATA[
+ import org.ofbiz.base.util.UtilProperties;
+ UtilProperties.setPropertyValue("AccountingConfig.properties",
"create.invoice.per.shipment", "Y");
+ ]]></call-bsh>
+ <log level="info" message="===== >>> Set Accounting.properties /
create.invoice.per.shipment = Y"/>
+ <!-- Step 2 -->
+ <field-to-session field="nullField" session-name="orderMode"/>
+ <set field="request" from-field="parameters.request"/>
+ <set field="response" from-field="parameters.response"/>
+ <call-class-method method-name="routeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : routeOrderEntry, Response =
${result}"/>
+ <entity-one value-field="userLogin" entity-name="UserLogin">
+ <field-map field-name="userLoginId" value="admin"/>
+ </entity-one>
+ <call-bsh><![CDATA[
+ request.setParameter("orderMode", "SALES_ORDER");
+ request.setParameter("productStoreId", "9000");
+ request.setParameter("partyId", "DemoCustomer");
+ request.setParameter("currencyUom", "USD");
+ session = request.getSession();
+ session.setAttribute("userLogin", userLogin);
+ ]]></call-bsh>
+ <call-class-method method-name="initializeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : initializeOrderEntry, Response =
${result}"/>
+ <call-class-method method-name="setOrderCurrencyAgreementShipDates"
class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event :
setOrderCurrencyAgreementShipDates, Response = ${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("add_product_id", "GZ-1000");
+ ]]></call-bsh>
+ <call-class-method method-name="addToCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : addToCart, Response =
${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("checkoutpage", "quick");
+ request.setParameter("shipping_contact_mech_id", "9015");
+ request.setParameter("shipping_method", "GROUND@UPS");
+ request.setParameter("checkOutPaymentId", "EXT_COD");
+ request.setParameter("is_gift", "false");
+ request.setParameter("may_split", "false");
+ ]]></call-bsh>
+ <field-to-request field="nullField" request-name="shoppingCart"/>
+ <call-class-method method-name="setQuickCheckOutOptions" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : setQuickCheckOutOptions, Response
= ${result}"/>
+ <call-class-method method-name="createOrder"
class-name="org.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : createOrder, Response =
${result}"/>
+ <call-class-method method-name="processPayment" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : processPayment, Response =
${result}"/>
+ <call-service-asynch service-name="sendOrderConfirmation"/>
+ <call-class-method method-name="destroyCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : destroyCart, Response =
${result}"/>
+ <!-- Step 3 -->
+ <entity-condition list="orderHeaders" entity-name="OrderHeader">
+ <condition-expr field-name="orderTypeId" value="SALES_ORDER"/>
+ <order-by field-name="-entryDate"/>
+ </entity-condition>
+ <first-from-list entry="orderHeader" list="orderHeaders"/>
+ <call-bsh><![CDATA[
+ import org.ofbiz.shipment.packing.PackingSession;
+ packingSession = new PackingSession(dispatcher, userLogin);
+ packingSession.setPrimaryOrderId(orderHeader.get("orderId"));
+ packingSession.setPrimaryShipGroupSeqId("00001");
+ parameters.put("packingSession", packingSession);
+ ]]></call-bsh>
+ <set field="packInput.orderId" from-field="orderHeader.orderId"/>
+ <set field="packInput.shipGroupSeqId" value="00001"/>
+ <set field="packInput.packingSession"
from-field="parameters.packingSession"/>
+ <set field="packInput.nextPackageSeq" value="1" type="Integer"/>
+ <set field="packInput.userLogin" from-field="userLogin"/>
+ <!-- Items -->
+ <set field="packInput.selInfo._1" value="Y"/>
+ <set field="packInput.pkgInfo._1" value="1"/>
+ <set field="packInput.qtyInfo._1" value="1"/>
+ <set field="packInput.prdInfo._1" value="GZ-1000"/>
+ <set field="packInput.iteInfo._1" value="00001"/>
+ <set field="packInput.wgtInfo._1" value="0"/>
+ <set field="packInput.boxTypeInfo._1" value="FX10KGBOX"/>
+ <set field="packInput.numPackagesInfo._1" value="1"/>
+ <call-service service-name="packBulkItems" in-map-name="packInput">
+ <result-to-field result-name="responseMessage"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: packBulkItems, Response =
${responseMessage}"/>
+ <set-service-fields service-name="completePack" to-map="completePackInput"
map="packInput"/>
+ <call-service service-name="completePack"
in-map-name="completePackInput">
+ <result-to-field result-name="shipmentId"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: completePack, shipmentId =
${shipmentId}"/>
+ <!-- Step 4 -->
+ <entity-and list="invoices"
entity-name="OrderItemBillingAndInvoiceAndItem">
+ <field-map field-name="orderId" from-field="orderHeader.orderId"/>
+ </entity-and>
+ <assert>
+ <not><if-empty field="invoices"/></not>
+ </assert>
+ <check-errors/>
+ </simple-method>
+ <simple-method method-name="testInvoicePerShipmentSetOrderFalse" short-description="Test Invoice Per Shipment Set Order
False" login-required="false">
+ <!-- Test Invoice Per Shipment
+ Step 1) Create order and set invoicePerShipment=N.
+ Step 2) Pack Shipment For Ship Group.
+ Step 3) Check invoice should not created.
+ -->
+ <!-- Step 1 -->
+ <field-to-session field="nullField" session-name="orderMode"/>
+ <set field="request" from-field="parameters.request"/>
+ <set field="response" from-field="parameters.response"/>
+ <call-class-method method-name="routeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : routeOrderEntry, Response =
${result}"/>
+ <entity-one value-field="userLogin" entity-name="UserLogin">
+ <field-map field-name="userLoginId" value="admin"/>
+ </entity-one>
+ <call-bsh><![CDATA[
+ request.setParameter("orderMode", "SALES_ORDER");
+ request.setParameter("productStoreId", "9000");
+ request.setParameter("partyId", "DemoCustomer");
+ request.setParameter("currencyUom", "USD");
+ session = request.getSession();
+ session.setAttribute("userLogin", userLogin);
+ ]]></call-bsh>
+ <call-class-method method-name="initializeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : initializeOrderEntry, Response =
${result}"/>
+ <call-class-method method-name="setOrderCurrencyAgreementShipDates"
class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event :
setOrderCurrencyAgreementShipDates, Response = ${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("add_product_id", "GZ-2644");
+ ]]></call-bsh>
+ <call-class-method method-name="addToCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : addToCart, Response =
${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("checkoutpage", "quick");
+ request.setParameter("shipping_contact_mech_id", "9015");
+ request.setParameter("shipping_method", "GROUND@UPS");
+ request.setParameter("checkOutPaymentId", "EXT_COD");
+ request.setParameter("is_gift", "false");
+ request.setParameter("may_split", "false");
+ ]]></call-bsh>
+ <field-to-request field="nullField" request-name="shoppingCart"/>
+ <call-class-method method-name="setQuickCheckOutOptions" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : setQuickCheckOutOptions, Response
= ${result}"/>
+ <call-class-method method-name="createOrder"
class-name="org.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : createOrder, Response =
${result}"/>
+ <call-class-method method-name="processPayment" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : processPayment, Response =
${result}"/>
+ <call-service-asynch service-name="sendOrderConfirmation"/>
+ <call-class-method method-name="destroyCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : destroyCart, Response =
${result}"/>
+ <entity-condition list="orderHeaders" entity-name="OrderHeader">
+ <condition-expr field-name="orderTypeId" value="SALES_ORDER"/>
+ <order-by field-name="-entryDate"/>
+ </entity-condition>
+ <first-from-list entry="orderHeader" list="orderHeaders"/>
+ <set field="orderInput.orderId" from-field="orderHeader.orderId"/>
+ <set field="orderInput.invoicePerShipment" value="N"/>
+ <set field="orderInput.userLogin" from-field="userLogin"/>
+ <call-service service-name="updateOrderHeader"
in-map-name="orderInput">
+ <result-to-field result-name="responseMessage"/>
+ </call-service>
+ <log level="info" message="===== >>> Service : updateOrderHeader / invoicePerShipment = N, Response =
${responseMessage}"/>
+ <!-- Step 2 -->
+ <call-bsh><![CDATA[
+ import org.ofbiz.shipment.packing.PackingSession;
+ packingSession = new PackingSession(dispatcher, userLogin);
+ packingSession.setPrimaryOrderId(orderHeader.get("orderId"));
+ packingSession.setPrimaryShipGroupSeqId("00001");
+ parameters.put("packingSession", packingSession);
+ ]]></call-bsh>
+ <set field="packInput.orderId" from-field="orderHeader.orderId"/>
+ <set field="packInput.shipGroupSeqId" value="00001"/>
+ <set field="packInput.packingSession"
from-field="parameters.packingSession"/>
+ <set field="packInput.nextPackageSeq" value="1" type="Integer"/>
+ <set field="packInput.userLogin" from-field="userLogin"/>
+ <!-- Items -->
+ <set field="packInput.selInfo._1" value="Y"/>
+ <set field="packInput.pkgInfo._1" value="1"/>
+ <set field="packInput.qtyInfo._1" value="1"/>
+ <set field="packInput.prdInfo._1" value="GZ-2644"/>
+ <set field="packInput.iteInfo._1" value="00001"/>
+ <set field="packInput.wgtInfo._1" value="0"/>
+ <set field="packInput.boxTypeInfo._1" value="FX10KGBOX"/>
+ <set field="packInput.numPackagesInfo._1" value="1"/>
+ <call-service service-name="packBulkItems" in-map-name="packInput">
+ <result-to-field result-name="responseMessage"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: packBulkItems, Response =
${responseMessage}"/>
+ <set-service-fields service-name="completePack" to-map="completePackInput"
map="packInput"/>
+ <call-service service-name="completePack"
in-map-name="completePackInput">
+ <result-to-field result-name="shipmentId"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: completePack, shipmentId =
${shipmentId}"/>
+ <!-- Step 3 -->
+ <entity-and list="invoices"
entity-name="OrderItemBillingAndInvoiceAndItem">
+ <field-map field-name="orderId" from-field="orderHeader.orderId"/>
+ </entity-and>
+ <assert>
+ <if-empty field="invoices"/>
+ </assert>
+ <check-errors/>
+ </simple-method>
+ <simple-method method-name="testInvoicePerShipmentSetOrderTrue" short-description="Test Invoice Per Shipment Set Order True"
login-required="false">
+ <!-- Test Invoice Per Shipment
+ Step 1) Create order and set invoicePerShipment=Y.
+ Step 2) Pack Shipment For Ship Group.
+ Step 3) Check invoice should created.
+ -->
+ <!-- Step 1 -->
+ <field-to-session field="nullField" session-name="orderMode"/>
+ <set field="request" from-field="parameters.request"/>
+ <set field="response" from-field="parameters.response"/>
+ <call-class-method method-name="routeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : routeOrderEntry, Response =
${result}"/>
+ <entity-one value-field="userLogin" entity-name="UserLogin">
+ <field-map field-name="userLoginId" value="admin"/>
+ </entity-one>
+ <call-bsh><![CDATA[
+ request.setParameter("orderMode", "SALES_ORDER");
+ request.setParameter("productStoreId", "9000");
+ request.setParameter("partyId", "DemoCustomer");
+ request.setParameter("currencyUom", "USD");
+ session = request.getSession();
+ session.setAttribute("userLogin", userLogin);
+ ]]></call-bsh>
+ <call-class-method method-name="initializeOrderEntry" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : initializeOrderEntry, Response =
${result}"/>
+ <call-class-method method-name="setOrderCurrencyAgreementShipDates"
class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event :
setOrderCurrencyAgreementShipDates, Response = ${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("add_product_id", "GZ-2644");
+ ]]></call-bsh>
+ <call-class-method method-name="addToCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : addToCart, Response =
${result}"/>
+ <call-bsh><![CDATA[
+ request.setParameter("checkoutpage", "quick");
+ request.setParameter("shipping_contact_mech_id", "9015");
+ request.setParameter("shipping_method", "GROUND@UPS");
+ request.setParameter("checkOutPaymentId", "EXT_COD");
+ request.setParameter("is_gift", "false");
+ request.setParameter("may_split", "false");
+ ]]></call-bsh>
+ <field-to-request field="nullField" request-name="shoppingCart"/>
+ <call-class-method method-name="setQuickCheckOutOptions" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : setQuickCheckOutOptions, Response
= ${result}"/>
+ <call-class-method method-name="createOrder"
class-name="org.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : createOrder, Response =
${result}"/>
+ <call-class-method method-name="processPayment" class-name="org.ofbiz.order.shoppingcart.CheckOutEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : processPayment, Response =
${result}"/>
+ <call-service-asynch service-name="sendOrderConfirmation"/>
+ <call-class-method method-name="destroyCart" class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents"
ret-field="result">
+ <field field="request"
type="javax.servlet.http.HttpServletRequest"/>
+ <field field="response"
type="javax.servlet.http.HttpServletResponse"/>
+ </call-class-method>
+ <log level="info" message="===== >>> Event : destroyCart, Response =
${result}"/>
+ <entity-condition list="orderHeaders" entity-name="OrderHeader">
+ <condition-expr field-name="orderTypeId" value="SALES_ORDER"/>
+ <order-by field-name="-entryDate"/>
+ </entity-condition>
+ <first-from-list entry="orderHeader" list="orderHeaders"/>
+ <set field="orderInput.orderId" from-field="orderHeader.orderId"/>
+ <set field="orderInput.invoicePerShipment" value="Y"/>
+ <set field="orderInput.userLogin" from-field="userLogin"/>
+ <call-service service-name="updateOrderHeader"
in-map-name="orderInput">
+ <result-to-field result-name="responseMessage"/>
+ </call-service>
+ <log level="info" message="===== >>> Service : updateOrderHeader / invoicePerShipment = Y, Response =
${responseMessage}"/>
+ <!-- Step 2 -->
+ <call-bsh><![CDATA[
+ import org.ofbiz.shipment.packing.PackingSession;
+ packingSession = new PackingSession(dispatcher, userLogin);
+ packingSession.setPrimaryOrderId(orderHeader.get("orderId"));
+ packingSession.setPrimaryShipGroupSeqId("00001");
+ parameters.put("packingSession", packingSession);
+ ]]></call-bsh>
+ <set field="packInput.orderId" from-field="orderHeader.orderId"/>
+ <set field="packInput.shipGroupSeqId" value="00001"/>
+ <set field="packInput.packingSession"
from-field="parameters.packingSession"/>
+ <set field="packInput.nextPackageSeq" value="1" type="Integer"/>
+ <set field="packInput.userLogin" from-field="userLogin"/>
+ <!-- Items -->
+ <set field="packInput.selInfo._1" value="Y"/>
+ <set field="packInput.pkgInfo._1" value="1"/>
+ <set field="packInput.qtyInfo._1" value="1"/>
+ <set field="packInput.prdInfo._1" value="GZ-2644"/>
+ <set field="packInput.iteInfo._1" value="00001"/>
+ <set field="packInput.wgtInfo._1" value="0"/>
+ <set field="packInput.boxTypeInfo._1" value="FX10KGBOX"/>
+ <set field="packInput.numPackagesInfo._1" value="1"/>
+ <call-service service-name="packBulkItems" in-map-name="packInput">
+ <result-to-field result-name="responseMessage"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: packBulkItems, Response =
${responseMessage}"/>
+ <set-service-fields service-name="completePack" to-map="completePackInput"
map="packInput"/>
+ <call-service service-name="completePack"
in-map-name="completePackInput">
+ <result-to-field result-name="shipmentId"/>
+ </call-service>
+ <log level="info" message="===== >>> Service: completePack, shipmentId =
${shipmentId}"/>
+ <!-- Step 3 -->
+ <entity-and list="invoices"
entity-name="OrderItemBillingAndInvoiceAndItem">
+ <field-map field-name="orderId" from-field="orderHeader.orderId"/>
+ </entity-and>
+ <assert>
+ <not><if-empty field="invoices"/></not>
+ </assert>
+ <check-errors/>
+ </simple-method>
+</simple-methods>
Propchange:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: ofbiz/trunk/applications/accounting/testdef/invoicetests.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/testdef/invoicetests.xml?rev=1163084&r1=1163083&r2=1163084&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/testdef/invoicetests.xml (original)
+++ ofbiz/trunk/applications/accounting/testdef/invoicetests.xml Tue Aug 30
04:25:28 2011
@@ -25,5 +25,7 @@
<test-case case-name="auto-invoice-tests">
<simple-method-test
location="component://accounting/script/org/ofbiz/accounting/test/AutoInvoiceTests.xml"/>
</test-case>
-
+ <test-case case-name="invoice-per-shipment-tests">
+ <simple-method-test
location="component://accounting/script/org/ofbiz/accounting/test/InvoicePerShipmentTests.xml"/>
+ </test-case>
</test-suite>
Added: ofbiz/trunk/framework/testtools/lib/org.springframework.core-3.1.0.M2.jar
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/testtools/lib/org.springframework.core-3.1.0.M2.jar?rev=1163084&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
ofbiz/trunk/framework/testtools/lib/org.springframework.core-3.1.0.M2.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/trunk/framework/testtools/lib/org.springframework.test-3.1.0.M2.jar
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/testtools/lib/org.springframework.test-3.1.0.M2.jar?rev=1163084&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
ofbiz/trunk/framework/testtools/lib/org.springframework.test-3.1.0.M2.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/trunk/framework/testtools/lib/org.springframework.web-3.1.0.M2.jar
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/testtools/lib/org.springframework.web-3.1.0.M2.jar?rev=1163084&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
ofbiz/trunk/framework/testtools/lib/org.springframework.web-3.1.0.M2.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified:
ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/SimpleMethodTest.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/SimpleMethodTest.java?rev=1163084&r1=1163083&r2=1163084&view=diff
==============================================================================
---
ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/SimpleMethodTest.java
(original)
+++
ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/SimpleMethodTest.java
Tue Aug 30 04:25:28 2011
@@ -30,8 +30,16 @@ import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.minilang.MiniLangException;
import org.ofbiz.minilang.SimpleMethod;
+import org.ofbiz.security.Security;
+import org.ofbiz.security.SecurityConfigurationException;
+import org.ofbiz.security.SecurityFactory;
import org.ofbiz.service.ModelService;
import org.ofbiz.service.testtools.OFBizTestCase;
+
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
+import org.springframework.mock.web.MockServletContext;
+
import org.w3c.dom.Element;
public class SimpleMethodTest extends OFBizTestCase {
@@ -40,6 +48,9 @@ public class SimpleMethodTest extends OF
protected String methodLocation;
protected String methodName;
+
+ public static MockHttpServletRequest request = new
MockHttpServletRequest();
+ public static MockHttpServletResponse response = new
MockHttpServletResponse();
/**
* Tests of Simple Method
@@ -64,11 +75,17 @@ public class SimpleMethodTest extends OF
@Override
public void run(TestResult result) {
result.startTest(this);
-
+
try {
-
+ // define request
+ Security security = SecurityFactory.getInstance(delegator);
+ MockServletContext servletContext = new MockServletContext();
+ request.setAttribute("security", security);
+ request.setAttribute("servletContext", servletContext);
+ request.setAttribute("delegator", delegator);
+ request.setAttribute("dispatcher", dispatcher);
Map<String, Object> serviceResult = SimpleMethod.runSimpleService(methodLocation, methodName,
dispatcher.getDispatchContext(),
- UtilMisc.toMap("test", this, "testResult", result,
"locale", Locale.getDefault()));
+ UtilMisc.toMap("test", this, "testResult", result, "locale", Locale.getDefault(), "request", request,
"response", response));
// do something with the errorMessage
String errorMessage = (String)
serviceResult.get(ModelService.ERROR_MESSAGE);
@@ -94,6 +111,8 @@ public class SimpleMethodTest extends OF
} catch (MiniLangException e) {
result.addError(this, e);
+ } catch (SecurityConfigurationException e) {
+ result.addError(this, e);
}
result.endTest(this);
Modified: ofbiz/trunk/specialpurpose/ecommerce/data/DemoOrderTestData.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/data/DemoOrderTestData.xml?rev=1163084&r1=1163083&r2=1163084&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/data/DemoOrderTestData.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/data/DemoOrderTestData.xml Tue Aug 30
04:25:28 2011
@@ -20,7 +20,7 @@ under the License.
<entity-engine-xml>
<!--Demo data for a sales order -->
- <OrderHeader orderId="DEMO10090" orderTypeId="SALES_ORDER" orderName="" salesChannelEnumId="WEB_SALES_CHANNEL"
orderDate="2008-04-23 16:49:27.392" entryDate="2008-04-23 16:49:27.392" priority="2" visitId="10002" statusId="ORDER_APPROVED"
createdBy="admin" currencyUom="USD" webSiteId="OrderEntry" productStoreId="9000" remainingSubTotal="38.40" grandTotal="50.85"
lastUpdatedStamp="2008-04-23 16:49:33.196" lastUpdatedTxStamp="2008-04-23 16:49:33.118" createdStamp="2008-04-23 16:49:27.716"
createdTxStamp="2008-04-23 16:49:27.349"/>
+ <OrderHeader orderId="DEMO10090" orderTypeId="SALES_ORDER" orderName="" salesChannelEnumId="WEB_SALES_CHANNEL"
orderDate="2008-04-23 16:49:27.392" entryDate="2008-04-23 16:49:27.392" priority="2" visitId="10002" statusId="ORDER_APPROVED"
createdBy="admin" currencyUom="USD" webSiteId="OrderEntry" productStoreId="9000" remainingSubTotal="38.40" grandTotal="50.85"
invoicePerShipment="Y" lastUpdatedStamp="2008-04-23 16:49:33.196" lastUpdatedTxStamp="2008-04-23 16:49:33.118"
createdStamp="2008-04-23 16:49:27.716" createdTxStamp="2008-04-23 16:49:27.349"/>
<OrderItem orderId="DEMO10090" orderItemSeqId="00001" orderItemTypeId="PRODUCT_ORDER_ITEM" productId="GZ-2644"
prodCatalogId="DemoCatalog" isPromo="N" quantity="2.0" selectedAmount="0.0" unitPrice="38.4" unitListPrice="48.0"
isModifiedPrice="N" itemDescription="Round Gizmo" correspondingPoId="" statusId="ITEM_APPROVED" lastUpdatedStamp="2008-04-23
16:49:33.514" lastUpdatedTxStamp="2008-04-23 16:49:33.484" createdStamp="2008-04-23 16:49:28.128" createdTxStamp="2008-04-23
16:49:27.349"/>
<OrderItemPriceInfo orderItemPriceInfoId="9000" orderId="DEMO10090" orderItemSeqId="00001" productPriceRuleId="9000"
productPriceActionSeqId="01" modifyAmount="-9.600" description="[PRODUCT_CATEGORY_IDIsPROMOTIONS]
[list:48.0;avgCost:48.0;margin:0.0] [type:PRICE_POL]" lastUpdatedStamp="2008-04-23 16:49:28.682" lastUpdatedTxStamp="2008-04-23
16:49:27.349" createdStamp="2008-04-23 16:49:28.682" createdTxStamp="2008-04-23 16:49:27.349"/>