Adrian,
thanks for fixing this. Before we go on and we fix similarly the other unit
tests, I would like to propose an alternative approach (with pros and cons);
see below. What do you think?
Jacopo
Index:
applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java
===================================================================
--- applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java
(revision 1579194)
+++ applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java
(working copy)
@@ -51,7 +51,7 @@
public void testCreateFinAccount() throws Exception {
Map<String, Object> ctx = FastMap.newInstance();
- ctx.put("finAccountId", "TESTACCOUNT1");
+ ctx.put("finAccountId", "TESTACCOUNT2");
ctx.put("finAccountName", "Test Financial Account");
ctx.put("finAccountTypeId", "BANK_ACCOUNT");
ctx.put("userLogin", userLogin);
@@ -60,6 +60,12 @@
}
public void testDeposit() throws Exception {
+ // ============ Setup =============
+ try {
+ delegator.create("FinAccount", "finAccountId", "TESTACCOUNT1",
"finAccountName", "Test Financial Account", "finAccountTypeId", "BANK_ACCOUNT",
"statusId", "FNACT_ACTIVE", "currencyUomId", "USD", "isRefundable", "Y");
+ } catch (Exception e) {
+ }
+ // ================================
Map<String, Object> ctx = FastMap.newInstance();
ctx.put("finAccountId", "TESTACCOUNT1");
ctx.put("amount", new BigDecimal("100.00"));
@@ -70,6 +76,12 @@
}
public void testWithdraw() throws Exception {
+ // ============ Setup =============
+ try {
+ delegator.create("FinAccount", "finAccountId", "TESTACCOUNT1",
"finAccountName", "Test Financial Account", "finAccountTypeId", "BANK_ACCOUNT",
"statusId", "FNACT_ACTIVE", "currencyUomId", "USD", "isRefundable", "Y");
+ } catch (Exception e) {
+ }
+ // ================================
Map<String, Object> ctx = FastMap.newInstance();
ctx.put("finAccountId", "TESTACCOUNT1");
ctx.put("amount", new BigDecimal("50.00"));
On Dec 29, 2013, at 9:42 PM, [email protected] wrote:
> Author: adrianc
> Date: Sun Dec 29 20:42:16 2013
> New Revision: 1554064
>
> URL: http://svn.apache.org/r1554064
> Log:
> Fixed the FinAccountTests - which assumed the tests would be run in the order
> they appear in source code, which JUnit does not guarantee:
>
> http://stackoverflow.com/questions/3693626/how-to-run-test-methods-in-specific-order-in-junit4
>
> Modified:
>
> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java
>
> Modified:
> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java
> URL:
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java?rev=1554064&r1=1554063&r2=1554064&view=diff
> ==============================================================================
> ---
> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java
> (original)
> +++
> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/test/FinAccountTests.java
> Sun Dec 29 20:42:16 2013
> @@ -20,13 +20,12 @@
> package org.ofbiz.accounting.test;
>
> import java.math.BigDecimal;
> +import java.util.HashMap;
> import java.util.Map;
>
> -import javolution.util.FastMap;
> -
> import org.ofbiz.base.util.UtilMisc;
> import org.ofbiz.entity.GenericValue;
> -import org.ofbiz.service.ModelService;
> +import org.ofbiz.service.ServiceUtil;
> import org.ofbiz.service.testtools.OFBizTestCase;
>
> /**
> @@ -34,49 +33,35 @@ import org.ofbiz.service.testtools.OFBiz
> */
> public class FinAccountTests extends OFBizTestCase {
>
> - protected GenericValue userLogin = null;
> -
> public FinAccountTests(String name) {
> super(name);
> }
>
> - @Override
> - protected void setUp() throws Exception {
> - userLogin = delegator.findOne("UserLogin",
> UtilMisc.toMap("userLoginId", "system"), false);
> - }
> -
> - @Override
> - protected void tearDown() throws Exception {
> - }
> -
> - public void testCreateFinAccount() throws Exception {
> - Map<String, Object> ctx = FastMap.newInstance();
> + public void testFinAccountOperations() throws Exception {
> + GenericValue userLogin = delegator.findOne("UserLogin",
> UtilMisc.toMap("userLoginId", "system"), false);
> + Map<String, Object> ctx = new HashMap<String, Object>();
> ctx.put("finAccountId", "TESTACCOUNT1");
> ctx.put("finAccountName", "Test Financial Account");
> ctx.put("finAccountTypeId", "BANK_ACCOUNT");
> ctx.put("userLogin", userLogin);
> Map<String, Object> resp = dispatcher.runSync("createFinAccount",
> ctx);
> - assertEquals("Service result success", ModelService.RESPOND_SUCCESS,
> resp.get(ModelService.RESPONSE_MESSAGE));
> - }
> -
> - public void testDeposit() throws Exception {
> - Map<String, Object> ctx = FastMap.newInstance();
> + assertTrue("Service 'createFinAccount' result success",
> ServiceUtil.isSuccess(resp));
> + ctx.clear();
> ctx.put("finAccountId", "TESTACCOUNT1");
> ctx.put("amount", new BigDecimal("100.00"));
> ctx.put("userLogin", userLogin);
> - Map<String, Object> resp = dispatcher.runSync("finAccountDeposit",
> ctx);
> + resp = dispatcher.runSync("finAccountDeposit", ctx);
> + assertTrue("Service 'finAccountDeposit' result success",
> ServiceUtil.isSuccess(resp));
> BigDecimal balance = (BigDecimal) resp.get("balance");
> assertEquals(balance.toPlainString(), "100.00");
> - }
> -
> - public void testWithdraw() throws Exception {
> - Map<String, Object> ctx = FastMap.newInstance();
> + ctx.clear();
> ctx.put("finAccountId", "TESTACCOUNT1");
> ctx.put("amount", new BigDecimal("50.00"));
> ctx.put("userLogin", userLogin);
> - Map<String, Object> resp = dispatcher.runSync("finAccountWithdraw",
> ctx);
> + resp = dispatcher.runSync("finAccountWithdraw", ctx);
> + assertTrue("Service 'finAccountWithdraw' result success",
> ServiceUtil.isSuccess(resp));
> BigDecimal previousBalance = (BigDecimal) resp.get("previousBalance");
> - BigDecimal balance = ((BigDecimal) resp.get("balance"));
> + balance = ((BigDecimal) resp.get("balance"));
> assertEquals(balance.add(new BigDecimal("50.00")).toPlainString(),
> previousBalance.toPlainString());
> }
> }
>
>