You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Jacques Le Roux <ja...@les7arts.com> on 2011/09/10 23:04:06 UTC

Re: svn commit: r1163084 - in /ofbiz/trunk: ./ applications/accounting/script/org/ofbiz/accounting/test/ applications/accounting/testdef/ framework/testtools/lib/ framework/testtools/src/org/ofbiz/testtools/ specialpurpose/ecommerce/data/

The AccountingConfig.properties file should be removed after the test

Thanks

Jacques

From: <ha...@apache.org>
> 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"/>
>
>
> 

Re: svn commit: r1163084 - in /ofbiz/trunk: ./ applications/accounting/script/org/ofbiz/accounting/test/ applications/accounting/testdef/ framework/testtools/lib/ framework/testtools/src/org/ofbiz/testtools/ specialpurpose/ecommerce/data/

Posted by Hans Bakker <ma...@antwebsystems.com>.
Thank you for reporting Jacques and Adrian.
Committed revision 1170063

Regards,
Hans



On Mon, 2011-09-12 at 23:01 +0200, Jacques Le Roux wrote:
> Bump...
> 
> Jacques
> 
> From: "Adrian Crum" <ad...@sandglass-software.com>
> >I noticed that too. A file is created in the main ofbiz folder and it is not deleted after the test.
> >
> > -Adrian
> >
> > On 9/11/2011 1:00 AM, Hans Bakker wrote:
> >> not sure what you mean here Jacques?
> >>
> >> On Sat, 2011-09-10 at 23:04 +0200, Jacques Le Roux wrote:
> >>> The AccountingConfig.properties file should be removed after the test
> >>>
> >>> Thanks
> >>>
> >>> Jacques
> >>>
> >>> From:<ha...@apache.org>
> >>>> 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"/>
> >>>>
> >>>>
> >>>> 
> 
> 

-- 
Ofbiz on twitter: http://twitter.com/apache_ofbiz
Alternative ofbiz website: http://www.ofbiz.info
http://www.antwebsystems.com : Quality services for competitive rates.


Re: svn commit: r1163084 - in /ofbiz/trunk: ./ applications/accounting/script/org/ofbiz/accounting/test/ applications/accounting/testdef/ framework/testtools/lib/ framework/testtools/src/org/ofbiz/testtools/ specialpurpose/ecommerce/data/

Posted by Hans Bakker <ma...@antwebsystems.com>.
sure Jacques, this is on our list todo...

Regards,
Hans

On Mon, 2011-09-12 at 23:01 +0200, Jacques Le Roux wrote:
> Bump...
> 
> Jacques
> 
> From: "Adrian Crum" <ad...@sandglass-software.com>
> >I noticed that too. A file is created in the main ofbiz folder and it is not deleted after the test.
> >
> > -Adrian
> >
> > On 9/11/2011 1:00 AM, Hans Bakker wrote:
> >> not sure what you mean here Jacques?
> >>
> >> On Sat, 2011-09-10 at 23:04 +0200, Jacques Le Roux wrote:
> >>> The AccountingConfig.properties file should be removed after the test
> >>>
> >>> Thanks
> >>>
> >>> Jacques
> >>>
> >>> From:<ha...@apache.org>
> >>>> 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"/>
> >>>>
> >>>>
> >>>> 
> 
> 

-- 
Ofbiz on twitter: http://twitter.com/apache_ofbiz
Alternative ofbiz website: http://www.ofbiz.info
http://www.antwebsystems.com : Quality services for competitive rates.


Re: svn commit: r1163084 - in /ofbiz/trunk: ./ applications/accounting/script/org/ofbiz/accounting/test/ applications/accounting/testdef/ framework/testtools/lib/ framework/testtools/src/org/ofbiz/testtools/ specialpurpose/ecommerce/data/

Posted by Jacques Le Roux <ja...@les7arts.com>.
Bump...

Jacques

From: "Adrian Crum" <ad...@sandglass-software.com>
>I noticed that too. A file is created in the main ofbiz folder and it is not deleted after the test.
>
> -Adrian
>
> On 9/11/2011 1:00 AM, Hans Bakker wrote:
>> not sure what you mean here Jacques?
>>
>> On Sat, 2011-09-10 at 23:04 +0200, Jacques Le Roux wrote:
>>> The AccountingConfig.properties file should be removed after the test
>>>
>>> Thanks
>>>
>>> Jacques
>>>
>>> From:<ha...@apache.org>
>>>> 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"/>
>>>>
>>>>
>>>> 



Re: svn commit: r1163084 - in /ofbiz/trunk: ./ applications/accounting/script/org/ofbiz/accounting/test/ applications/accounting/testdef/ framework/testtools/lib/ framework/testtools/src/org/ofbiz/testtools/ specialpurpose/ecommerce/data/

Posted by Adrian Crum <ad...@sandglass-software.com>.
I noticed that too. A file is created in the main ofbiz folder and it is 
not deleted after the test.

-Adrian

On 9/11/2011 1:00 AM, Hans Bakker wrote:
> not sure what you mean here Jacques?
>
> On Sat, 2011-09-10 at 23:04 +0200, Jacques Le Roux wrote:
>> The AccountingConfig.properties file should be removed after the test
>>
>> Thanks
>>
>> Jacques
>>
>> From:<ha...@apache.org>
>>> 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"/>
>>>
>>>
>>>

Re: svn commit: r1163084 - in /ofbiz/trunk: ./ applications/accounting/script/org/ofbiz/accounting/test/ applications/accounting/testdef/ framework/testtools/lib/ framework/testtools/src/org/ofbiz/testtools/ specialpurpose/ecommerce/data/

Posted by Hans Bakker <ma...@antwebsystems.com>.
not sure what you mean here Jacques?

On Sat, 2011-09-10 at 23:04 +0200, Jacques Le Roux wrote:
> The AccountingConfig.properties file should be removed after the test
> 
> Thanks
> 
> Jacques
> 
> From: <ha...@apache.org>
> > 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"/>
> >
> >
> > 

-- 
Ofbiz on twitter: http://twitter.com/apache_ofbiz
Alternative ofbiz website: http://www.ofbiz.info
http://www.antwebsystems.com : Quality services for competitive rates.