IDEMPIERE-206 / Fitnesse fixes:
- Sync sample test cases with latest changes - Use configurable port on ZkSuite - Fix context problem on Login and RunProcess - Fix jasper checking on RunProcess (same bug on webservices) - Implement context variable parsing on Util - Change log of post event on core to inform error when a fitnesse posting fails - Improve error on posting material receipt requiring order line
This commit is contained in:
parent
197afc88af
commit
daece5d52c
|
@ -65,15 +65,15 @@ Check the inventory level after the document
|
|||
|@ExpectedInventoryLevelAfter@|@SQL=SELECT SUM(s.qtyonhand) FROM m_storage s, m_locator l, m_warehouse w WHERE s.m_product_id=133 AND s.m_locator_id = l.m_locator_id AND l.m_warehouse_id=w.m_warehouse_id AND w.m_warehouse_id=103|
|
||||
|
||||
|
||||
Check the bp balance after the document
|
||||
Check the bp balance after the document (with the new cash payment is applied immediately so there must not be variance on the bp balance)
|
||||
|
||||
!|Assert Record|
|
||||
|*Table* |C_bpartner |
|
||||
|*Where* |c_bpartner_id=120 |
|
||||
|*Read* | |
|
||||
|actuallifetimevalue|@SQL=SELECT @C_bpartner.actuallifetimevalue@ + @c_order.grandtotal@ FROM DUAL|
|
||||
|so_creditused |@SQL=SELECT @C_bpartner.so_creditused@ + @c_order.grandtotal@ FROM DUAL |
|
||||
|totalopenbalance |@SQL=SELECT @C_bpartner.totalopenbalance@ + @c_order.grandtotal@ FROM DUAL |
|
||||
|so_creditused |@SQL=SELECT @C_bpartner.so_creditused@ FROM DUAL |
|
||||
|totalopenbalance |@SQL=SELECT @C_bpartner.totalopenbalance@ FROM DUAL |
|
||||
|
||||
Check existance of shipment
|
||||
|
||||
|
@ -123,17 +123,14 @@ Check existance of invoice
|
|||
|qtyinvoiced | |
|
||||
|linenetamt | |
|
||||
|
||||
Check existance of cash journal line
|
||||
Check existance of cash payment (now on payment table)
|
||||
|
||||
!|Read Record|
|
||||
|*Table* |C_CashLine |
|
||||
|*Table* |C_Payment |
|
||||
|C_Invoice_id|@C_Invoice.C_Invoice_id@|
|
||||
|*Read* | |
|
||||
|line | |
|
||||
|c_cash_id | |
|
||||
|line | |
|
||||
|documentno | |
|
||||
|description | |
|
||||
|amount | |
|
||||
|isgenerated | |
|
||||
|processed | |
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
This test tries to create a reference in the database, intentionally the !-ValidationType-! is left to a wrong value (Y) to make it fail.
|
||||
This test tries to create a reference in the database, intentionally the !-ValidationType-! is set to a wrong value (Y) to make it fail.
|
||||
|
||||
!include TestLoginSystem
|
||||
|
||||
|
@ -7,4 +7,4 @@ This test tries to create a reference in the database, intentionally the !-Valid
|
|||
|Name |Fitnesse Test|
|
||||
|ValidationType|Y |
|
||||
|invalidcolumn|Y |
|
||||
|*Save* | |
|
||||
|*Save*Error* |java.lang.Exception: Cannot set value of column|
|
||||
|
|
|
@ -2,19 +2,23 @@ This test creates a new tenant in the database.
|
|||
|
||||
!include TestLoginSystem
|
||||
|
||||
!|Run Process|
|
||||
|*ProcessValue* |InitialClientSetup |
|
||||
|ClientName |Prueba |
|
||||
|OrgName |Prueba |
|
||||
|AdminUserName |PruebaAdmin |
|
||||
|NormalUserName |PruebaUser |
|
||||
|C_Currency_ID |230 |
|
||||
|C_Country_ID |156 |
|
||||
|CityName |Bogotá |
|
||||
|IsUseBPDimension |Y |
|
||||
|IsUseProductDimension |Y |
|
||||
|IsUseProjectDimension |Y |
|
||||
|IsUseCampaignDimension |N |
|
||||
|IsUseSalesRegionDimension|N |
|
||||
|CoAFile |/home/carlos/hgAdempiere/adempiere361/data/import/AccountingUS.csv|
|
||||
|*Run* | |
|
||||
!|Set Variable |
|
||||
|@random_string@|@random_string(,,6)|
|
||||
|
||||
|
||||
!|Run Process |
|
||||
|*ProcessValue* |InitialClientSetup |
|
||||
|ClientName |TestClient @random_string@ |
|
||||
|OrgName |TestOrg @random_string@ |
|
||||
|AdminUserName |@random_string@Admin |
|
||||
|NormalUserName |@random_string@User |
|
||||
|C_Currency_ID |230 |
|
||||
|C_Country_ID |156 |
|
||||
|CityName |Bogotá |
|
||||
|IsUseBPDimension |Y |
|
||||
|IsUseProductDimension |Y |
|
||||
|IsUseProjectDimension |Y |
|
||||
|IsUseCampaignDimension |N |
|
||||
|IsUseSalesRegionDimension|N |
|
||||
|CoAFile |${fitnesse_home}/../org.adempiere.server-feature/data/import/AccountingUS.csv|
|
||||
|*Run* | |
|
||||
|
|
|
@ -4,43 +4,49 @@ https://sourceforge.net/tracker/?func=detail&atid=879332&aid=2713724&group_id=17
|
|||
|
||||
!include -c TestLoginGardenAdmin
|
||||
|
||||
!|Set Variable |
|
||||
|@InventoryLevelBefore@ |@SQL=select sum(qtyonhand) from m_storage where m_product_id=141 and m_locator_id=101|
|
||||
|@ExpectedInventoryLevelAfter@|@SQL=SELECT @InventoryLevelBefore@-2 FROM dual |
|
||||
|
||||
Create the internal use document
|
||||
|
||||
!|Create Record|
|
||||
|*Table*|M_Inventory |
|
||||
!|Create Record |
|
||||
|*Table* |M_Inventory |
|
||||
|ad_org_id |11 |
|
||||
|c_doctype_id |144 |
|
||||
|c_doctype_id |200000 |
|
||||
|m_warehouse_id|103 |
|
||||
|movementdate |2009-03-26 00:00:00.0|
|
||||
|*Save*| |
|
||||
|movementdate |2013-06-26 00:00:00.0|
|
||||
|*Save* | |
|
||||
|
||||
Create internal use line
|
||||
|
||||
!|Create Record|
|
||||
|*Table*|M_InventoryLine |
|
||||
|M_Inventory_ID|@M_Inventory.M_Inventory_ID@ |
|
||||
|ad_org_id |@M_Inventory.AD_Org_ID@ |
|
||||
|m_locator_id |101 |
|
||||
|m_product_id |141 |
|
||||
|c_charge_id |101 |
|
||||
|qtyinternaluse|@SQL=select sum(qtyonhand) from m_storage where m_product_id=141 and m_locator_id=101 and m_attributesetinstance_id=0|
|
||||
|qtybook|@SQL=select sum(qtyonhand) from m_storage where m_product_id=141 and m_locator_id=101 and m_attributesetinstance_id=0|
|
||||
|*Save*| |
|
||||
!|Create Record |
|
||||
|*Table* |M_InventoryLine |
|
||||
|M_Inventory_ID|@M_Inventory.M_Inventory_ID@|
|
||||
|ad_org_id |@M_Inventory.AD_Org_ID@ |
|
||||
|m_locator_id |101 |
|
||||
|m_product_id |141 |
|
||||
|c_charge_id |101 |
|
||||
|qtyinternaluse|2 |
|
||||
|*Save* | |
|
||||
|
||||
Complete the internal use
|
||||
|
||||
!|Run Process|
|
||||
|*ProcessValue*|M_Inventory Process |
|
||||
!|Run Process |
|
||||
|*ProcessValue*|M_Inventory Process |
|
||||
|*RecordID* |@M_Inventory.M_Inventory_ID@|
|
||||
|*DocAction* |CO |
|
||||
|*Run*| |
|
||||
|*DocAction* |CO |
|
||||
|*Run* | |
|
||||
|
||||
!|Assert Variable |
|
||||
|@ExpectedInventoryLevelAfter@|@SQL=select sum(qtyonhand) from m_storage where m_product_id=141 and m_locator_id=101|
|
||||
|
||||
Post
|
||||
|
||||
!|Set DocAction|
|
||||
|*Table* |M_Inventory|
|
||||
|M_Inventory_ID|@M_Inventory.M_Inventory_ID@ |
|
||||
|docAction |PO |
|
||||
|*Save*| |
|
||||
!|Set DocAction |
|
||||
|*Table* |M_Inventory |
|
||||
|M_Inventory_ID|@M_Inventory.M_Inventory_ID@|
|
||||
|docAction |PO |
|
||||
|*Save* | |
|
||||
|
||||
Check the postings
|
|
@ -1,3 +1,9 @@
|
|||
|IdempiereSuite.TestInitialClientSetup||17:03:35 vie, jun 28, 2013|
|
||||
|IdempiereSuite.TestPostInternalInventory||15:31:05 vie, jun 28, 2013|
|
||||
|IdempiereSuite.TestCreateReference||14:44:52 vie, jun 28, 2013|
|
||||
|IdempiereSuite.TestCashPosOrder||14:42:20 vie, jun 28, 2013|
|
||||
|ZkSuite.ZkGardenAdminLogin||13:02:13 vie, jun 28, 2013|
|
||||
|ZkSuite.ZkSystemAdminLogin||13:00:38 vie, jun 28, 2013|
|
||||
|||12:04:00 jue, dic 20, 2012|
|
||||
|FitLibraryWeb||01:41:13 Thu, Dec 13, 2012|
|
||||
|FitLibrary||01:40:51 Thu, Dec 13, 2012|
|
||||
|
@ -9,13 +15,9 @@
|
|||
|CommonTests.CreateProductPrice||01:29:57 mar, abr 03, 2012|
|
||||
|AvgCostSuite.BasicTest||01:18:34 mar, abr 03, 2012|
|
||||
|CommonTests.CreatePurchaseOrder||01:13:34 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestPostInternalInventory||24:21:25 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestInitialClientSetup||24:20:45 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestCreateReference||24:20:15 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestLoginSystem||24:20:05 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestCreateBusinessPartner||24:19:40 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestCompletePayment||24:19:18 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestCashPosOrder||24:18:46 mar, abr 03, 2012|
|
||||
|IdempiereSuite||24:17:17 mar, abr 03, 2012|
|
||||
|IdempiereSuite.TestLoginGardenAdmin||24:17:07 mar, abr 03, 2012|
|
||||
|IdempiereSuite.QuickTest||24:16:36 mar, abr 03, 2012|
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
'''start firefox,chrome or phantomjs'''
|
||||
|''start spider with''|firefox|
|
||||
|''shutdown browser automatically''|false|
|
||||
|''get url''|http://localhost:8080/webui/index.zul|
|
||||
|''get url''|http://localhost:${ADEMPIERE_WEB_PORT}/webui/index.zul|
|
||||
|
||||
|''wait response''|
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
'''start firefox,chrome or phantomjs'''
|
||||
|''start spider with''|firefox|
|
||||
|''shutdown browser automatically''|false|
|
||||
|''get url''|http://localhost:8080/webui/index.zul|
|
||||
|''get url''|http://localhost:${ADEMPIERE_WEB_PORT}/webui/index.zul|
|
||||
|
||||
|''wait response''|
|
||||
|
||||
|
|
|
@ -419,7 +419,7 @@ public class Doc_InOut extends Doc
|
|||
}
|
||||
else
|
||||
{
|
||||
p_Error = "Resubmit - No Costs for " + product.getName();
|
||||
p_Error = "Resubmit - No Costs for " + product.getName() + " (required order line)";
|
||||
log.log(Level.WARNING, p_Error);
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ import org.compiere.model.PO;
|
|||
import org.compiere.util.CLogger;
|
||||
import org.compiere.util.DB;
|
||||
import org.compiere.util.Env;
|
||||
import org.compiere.util.Util;
|
||||
import org.eevolution.model.I_DD_Order;
|
||||
import org.eevolution.model.I_HR_Process;
|
||||
import org.eevolution.model.I_PP_Cost_Collector;
|
||||
|
@ -489,6 +490,12 @@ public class DocumentEngine implements DocAction
|
|||
return false;
|
||||
|
||||
String error = DocumentEngine.postImmediate(Env.getCtx(), m_document.getAD_Client_ID(), m_document.get_Table_ID(), m_document.get_ID(), true, m_document.get_TrxName());
|
||||
if (ACTION_Post.equals(m_action)) {
|
||||
// forced post via process - throw exception to inform the caller about the error
|
||||
if (! Util.isEmpty(error)) {
|
||||
throw new AdempiereException(error);
|
||||
}
|
||||
}
|
||||
return (error == null);
|
||||
} // postIt
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ Import-Package: fit,
|
|||
fitnesse.wikitext.widgets,
|
||||
fitnesseMain,
|
||||
fitnesseMain.ant,
|
||||
org.adempiere.util,
|
||||
org.compiere,
|
||||
org.compiere.model,
|
||||
org.compiere.process,
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
|
||||
package org.idempiere.fitnesse.fixture;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.compiere.model.MSession;
|
||||
import org.compiere.model.MUser;
|
||||
import org.compiere.util.Env;
|
||||
|
@ -54,6 +56,7 @@ public class Login extends TableFixture {
|
|||
if (adempiereInstance == null) {
|
||||
adempiereInstance = Static_iDempiereInstance.getInstance();
|
||||
}
|
||||
Properties ctx = adempiereInstance.getAdempiereService().getCtx();
|
||||
boolean isErrorExpected = "*Login*Error*".equalsIgnoreCase(getText(rows-1, 0));
|
||||
String msgerror = getText(rows-1, 1);
|
||||
for (int i = 0; i < rows; i++) {
|
||||
|
@ -116,7 +119,7 @@ public class Login extends TableFixture {
|
|||
else {
|
||||
String msg = modelLogin();
|
||||
if (msg == null || msg.length() == 0) {
|
||||
MSession.get (Env.getCtx(), true);// Start Session
|
||||
MSession.get (ctx, true);// Start Session
|
||||
if (isErrorExpected) {
|
||||
wrong(rows-1, 0);
|
||||
wrong(rows-1, 1);
|
||||
|
|
|
@ -33,6 +33,7 @@ import java.util.HashMap;
|
|||
import java.util.Properties;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.adempiere.util.ProcessUtil;
|
||||
import org.compiere.model.Lookup;
|
||||
import org.compiere.model.MPInstance;
|
||||
import org.compiere.model.MPInstanceLog;
|
||||
|
@ -172,7 +173,14 @@ public class RunProcess extends TableFixture {
|
|||
if (recordID >0)
|
||||
pi.setRecord_ID(recordID);
|
||||
boolean processOK = false;
|
||||
boolean jasperreport = (process != null && process.getClassname()!=null && process.getClassname().indexOf( "net.sf.compilo.report.ReportStarter" ) >=0 );
|
||||
boolean jasperreport =
|
||||
(process != null
|
||||
&& (process.getJasperReport() != null
|
||||
|| (process.getClassname() != null
|
||||
&& process.getClassname().indexOf(ProcessUtil.JASPER_STARTER_CLASS) >= 0
|
||||
)
|
||||
)
|
||||
);
|
||||
// Start
|
||||
if (process.isWorkflow())
|
||||
{
|
||||
|
@ -191,6 +199,7 @@ public class RunProcess extends TableFixture {
|
|||
if (table != null) {
|
||||
PO po = table.getPO(recordID, null);
|
||||
if (!docAction.equals(po.get_Value("DocStatus"))) {
|
||||
getCell(i, 1).addToBody("<br>Expected " + docAction + "<br>Received " + po.get_Value("DocStatus"));
|
||||
boolean ok = Util.evaluateError(Msg.parseTranslation(ctx, pi.getSummary()), msgerror1, isErrorExpected);
|
||||
if (ok) {
|
||||
right(getCell(i, 1));
|
||||
|
@ -306,7 +315,7 @@ public class RunProcess extends TableFixture {
|
|||
if (pil.getP_Number() != null)
|
||||
getCell(i, 1).addToBody(pil.getP_Number() + " \t");
|
||||
if (pil.getP_Msg() != null)
|
||||
getCell(i, 1).addToBody(Msg.parseTranslation(Env.getCtx(), pil.getP_Msg()).replaceAll("\\n", "<br>"));
|
||||
getCell(i, 1).addToBody(Msg.parseTranslation(adempiereInstance.getAdempiereService().getCtx(), pil.getP_Msg()).replaceAll("\\n", "<br>"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,18 +125,6 @@ public class Util {
|
|||
parse.addToBody("<hr/>" + newval);
|
||||
if (log.isLoggable(Level.CONFIG)) log.config("Cell value " + cell_value + " evaluated to " + newval);
|
||||
return newval;
|
||||
} else if (cell_value.startsWith("@") && cell_value.endsWith("@")) {
|
||||
int posdot = cell_value.indexOf(".");
|
||||
if (posdot >= 0) {
|
||||
cell_value = cell_value.toLowerCase();
|
||||
}
|
||||
String newval = Env.getContext(ctx, windowNo, cell_value.substring(1, cell_value.length()-1));
|
||||
if (newval == null)
|
||||
return cell_value;
|
||||
if (parse != null)
|
||||
parse.addToBody("<hr/>" + newval);
|
||||
if (log.isLoggable(Level.CONFIG)) log.config("Cell value " + cell_value + " evaluated to " + newval);
|
||||
return newval;
|
||||
} else if ((cell_value.toLowerCase().startsWith("@random_number(") || cell_value.toLowerCase().startsWith("@random_string("))
|
||||
&& cell_value.endsWith(")")) {
|
||||
// allow @RANDOM_NUMBER(PREFIX,SUFFIX,LENGTH,DECIMALS)@ in column value
|
||||
|
@ -198,6 +186,26 @@ public class Util {
|
|||
parse.addToBody("<hr/>" + newval);
|
||||
if (log.isLoggable(Level.CONFIG)) log.config("Cell value " + cell_value + " evaluated to " + newval);
|
||||
return newval;
|
||||
} else if (cell_value.startsWith("@") && cell_value.endsWith("@")) {
|
||||
int posdot = cell_value.indexOf(".");
|
||||
if (posdot >= 0) {
|
||||
cell_value = cell_value.toLowerCase();
|
||||
}
|
||||
String newval = Env.getContext(ctx, windowNo, cell_value.substring(1, cell_value.length()-1));
|
||||
if (newval == null)
|
||||
return cell_value;
|
||||
if (parse != null)
|
||||
parse.addToBody("<hr/>" + newval);
|
||||
if (log.isLoggable(Level.CONFIG)) log.config("Cell value " + cell_value + " evaluated to " + newval);
|
||||
return newval;
|
||||
} else if (cell_value.matches(".*@.*@.*")) {
|
||||
String newval = Env.parseContext(ctx, windowNo, cell_value, false, false);
|
||||
if (newval == null || newval.length() == 0)
|
||||
return cell_value;
|
||||
if (parse != null)
|
||||
parse.addToBody("<hr/>" + newval);
|
||||
if (log.isLoggable(Level.CONFIG)) log.config("Cell value " + cell_value + " evaluated to " + newval);
|
||||
return newval;
|
||||
} else if (cell_value.startsWith("\\@")) {
|
||||
cell_value = cell_value.substring(1);
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import javax.xml.namespace.QName;
|
|||
import net.sf.compilo.report.ReportProcessor;
|
||||
import net.sf.jasperreports.engine.JasperPrint;
|
||||
|
||||
import org.adempiere.util.ProcessUtil;
|
||||
import org.compiere.model.Lookup;
|
||||
import org.compiere.model.MLookup;
|
||||
import org.compiere.model.MLookupFactory;
|
||||
|
@ -288,7 +289,14 @@ public class Process {
|
|||
}
|
||||
|
||||
boolean processOK = false;
|
||||
boolean jasperreport = (process != null && process.getClassname()!=null && process.getClassname().indexOf( "net.sf.compilo.report.ReportStarter" ) >=0 );
|
||||
boolean jasperreport =
|
||||
(process != null
|
||||
&& (process.getJasperReport() != null
|
||||
|| (process.getClassname() != null
|
||||
&& process.getClassname().indexOf(ProcessUtil.JASPER_STARTER_CLASS) >= 0
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
if (jasperreport)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue