details:   https://code.openbravo.com/erp/devel/pi/rev/704ea44ad8ad
changeset: 31317:704ea44ad8ad
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Mon Jan 30 09:04:49 2017 +0100
summary:   fixed bug 35075: PersistanceObserver fails if there're observers for 
OrderLine

  When there are other observers for order line assuming order line has order 
set
  on save, they can fail.

  Now when new order lines are created, a random order is assigned to them.

details:   https://code.openbravo.com/erp/devel/pi/rev/a97688739247
changeset: 31318:a97688739247
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Mon Jan 30 09:23:12 2017 +0100
summary:   fixed bug 35076: if test leaves admin mode, following test cases fail

  Restore previous mode when this situation occurs so that following test cases
  start in a clean situation.

diffstat:

 
modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/ObserverBaseTest.java
    |  5 +++++
 
modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/PersistanceObserver.java
 |  2 ++
 src-test/src/org/openbravo/test/base/OBBaseTest.java                           
                                        |  1 +
 3 files changed, 8 insertions(+), 0 deletions(-)

diffs (52 lines):

diff -r 2d51591f5a05 -r a97688739247 
modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/ObserverBaseTest.java
--- 
a/modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/ObserverBaseTest.java
       Mon Jan 30 08:52:15 2017 +0100
+++ 
b/modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/ObserverBaseTest.java
       Mon Jan 30 09:23:12 2017 +0100
@@ -29,6 +29,7 @@
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.model.ad.datamodel.Table;
+import org.openbravo.model.common.order.Order;
 import org.openbravo.model.common.order.OrderLine;
 
 /** Base class to test Dal observer execution. Handles state of {@link 
OrderLineTestObserver}. */
@@ -56,6 +57,10 @@
         .uniqueResult();
   }
 
+  protected Order pickARandomOrder() {
+    return (Order) 
OBDal.getInstance().createCriteria(Order.class).setMaxResults(1).uniqueResult();
+  }
+
   protected int countNotes(BaseOBObject obj) {
     OBContext.setAdminMode(true);
     try {
diff -r 2d51591f5a05 -r a97688739247 
modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/PersistanceObserver.java
--- 
a/modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/PersistanceObserver.java
    Mon Jan 30 08:52:15 2017 +0100
+++ 
b/modules/org.openbravo.client.application/src-test/org/openbravo/client/application/test/event/PersistanceObserver.java
    Mon Jan 30 09:23:12 2017 +0100
@@ -49,6 +49,7 @@
     observerExecutionType = ObserverExecutionType.ON_NOOP;
     OBContext.setAdminMode(false);
     OrderLine ol = OBProvider.getInstance().get(OrderLine.class);
+    ol.setSalesOrder(pickARandomOrder());
     OBDal.getInstance().save(ol);
     assertThat("Observer executions", 
OrderLineTestObserver.getNumberOfExecutions(), is(1));
 
@@ -114,6 +115,7 @@
     observerExecutionType = ObserverExecutionType.ON_NOOP;
     OBContext.setAdminMode(false);
     OrderLine ol = OBProvider.getInstance().get(OrderLine.class);
+    ol.setSalesOrder(pickARandomOrder());
     OBDal.getInstance().save(ol);
 
     try {
diff -r 2d51591f5a05 -r a97688739247 
src-test/src/org/openbravo/test/base/OBBaseTest.java
--- a/src-test/src/org/openbravo/test/base/OBBaseTest.java      Mon Jan 30 
08:52:15 2017 +0100
+++ b/src-test/src/org/openbravo/test/base/OBBaseTest.java      Mon Jan 30 
09:23:12 2017 +0100
@@ -90,6 +90,7 @@
       if (!OBContext.getOBContext().getUser().getId().equals("0")
           && !OBContext.getOBContext().getRole().getId().equals("0")
           && OBContext.getOBContext().isInAdministratorMode()) {
+        OBContext.restorePreviousMode();
         throw new IllegalStateException(
             "Test case should take care of reseting admin mode correctly in a 
finally block, use OBContext.restorePreviousMode");
       }

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to