The AccountingConfig.properties file should be removed after the test

Thanks

Jacques

From: <hans...@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"/>



Reply via email to