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