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"/>
 


Reply via email to