From 4b71b77498fb287c3890cc599950e114ee28c447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Thu, 30 Apr 2009 13:01:21 +0000 Subject: [PATCH] - test for case when trade condition with different trade model is changed on invoice git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@26743 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/tests/testBPMCore.py | 130 +++++++++++++++++++++++++++++- 1 file changed, 128 insertions(+), 2 deletions(-) diff --git a/product/ERP5/tests/testBPMCore.py b/product/ERP5/tests/testBPMCore.py index 8d536e0fc5..bf0c14985e 100644 --- a/product/ERP5/tests/testBPMCore.py +++ b/product/ERP5/tests/testBPMCore.py @@ -51,6 +51,10 @@ class TestBPMMixin(ERP5TypeTestCase): default_discount_ratio = -0.05 # -5% default_tax_ratio = 0.196 # 19,6% + + new_discount_ratio = -0.04 # -4% + new_tax_ratio = 0.22 # 22% + node_portal_type = 'Organisation' order_date = DateTime() default_business_process = \ @@ -372,6 +376,12 @@ class TestBPMMixin(ERP5TypeTestCase): order.edit(specialise_value = trade_condition) + def stepSpecialiseInvoiceTradeCondition(self, sequence=None, **kw): + invoice = sequence.get('invoice') + trade_condition = sequence.get('trade_condition') + + invoice.edit(specialise_value = trade_condition) + def stepPlanOrder(self, sequence=None, **kw): order = sequence.get('order') workflow_tool = getToolByName(self.portal, 'portal_workflow') @@ -491,6 +501,44 @@ class TestBPMMixin(ERP5TypeTestCase): self.assertEquals(abs(income_expense_line.getTotalPrice()), rounded_total_price - rounded_tax_price) + def stepSetTradeConditionOld(self, sequence=None, **kw): + trade_condition = sequence.get('trade_condition') + + self.assertNotEqual(None, trade_condition) + + sequence.edit( + trade_condition = None, + old_trade_condition = trade_condition + ) + + def stepSetTradeConditionNew(self, sequence=None, **kw): + trade_condition = sequence.get('trade_condition') + + self.assertNotEqual(None, trade_condition) + + sequence.edit( + trade_condition = None, + new_trade_condition = trade_condition + ) + + def stepGetOldTradeCondition(self, sequence=None, **kw): + trade_condition = sequence.get('old_trade_condition') + + self.assertNotEqual(None, trade_condition) + + sequence.edit( + trade_condition = trade_condition, + ) + + def stepGetNewTradeCondition(self, sequence=None, **kw): + trade_condition = sequence.get('new_trade_condition') + + self.assertNotEqual(None, trade_condition) + + sequence.edit( + trade_condition = trade_condition, + ) + def stepCheckInvoiceTradeModelRelatedMovements(self, sequence=None, **kw): # movement selection is done by hand, as no API is yet defined invoice = sequence.get('invoice') @@ -545,7 +593,7 @@ class TestBPMMixin(ERP5TypeTestCase): def stepCheckInvoiceCausalityStateSolved(self, sequence=None, **kw): invoice = sequence.get('invoice') - self.assertEqual('solved', invoice.getCausalityState()) + self.assertEqual('solved', invoice.getCausalityState(), invoice.getDivergenceList()) def stepCheckInvoiceCausalityStateDiverged(self, sequence=None, **kw): invoice = sequence.get('invoice') @@ -1057,6 +1105,22 @@ class TestBPMMixin(ERP5TypeTestCase): self.assertNotEqual(None, business_process) trade_condition.setSpecialiseValue(business_process) + def stepModifyTradeModelLineNewDiscount(self, sequence=None, **kw): + trade_model_line = sequence.get('trade_model_line') + service_discount = sequence.get('service_discount') + + trade_model_line.edit( + price=self.new_discount_ratio, + base_application='base_amount/discount', + base_contribution='base_amount/tax', + trade_phase='default/discount', + resource_value=service_discount, + ) + sequence.edit( + trade_model_line = None, + trade_model_line_discount = trade_model_line + ) + def stepModifyTradeModelLineDiscount(self, sequence=None, **kw): trade_model_line = sequence.get('trade_model_line') service_discount = sequence.get('service_discount') @@ -1073,6 +1137,21 @@ class TestBPMMixin(ERP5TypeTestCase): trade_model_line_discount = trade_model_line ) + def stepModifyTradeModelLineNewTax(self, sequence=None, **kw): + trade_model_line = sequence.get('trade_model_line') + service_tax = sequence.get('service_tax') + + trade_model_line.edit( + price=self.new_tax_ratio, + base_application='base_amount/tax', + trade_phase='default/tax', + resource_value=service_tax, + ) + sequence.edit( + trade_model_line = None, + trade_model_line_tax = trade_model_line + ) + def stepModifyTradeModelLineTax(self, sequence=None, **kw): trade_model_line = sequence.get('trade_model_line') service_tax = sequence.get('service_tax') @@ -1405,7 +1484,54 @@ class TestBPMTestCases(TestBPMMixin): def test_TradeModelRuleSimulationBuildInvoiceNewTradeConditionDivergencyAndSolving(self): """Check that after changing trade condition invoice is properly diverged and it is possible to solve""" - raise NotImplementedError('TODO') + sequence_list = SequenceList() + sequence_string = self.trade_model_rule_simulation_common_string + sequence_string += """ + ConfirmOrder + Tic + """ + self.aggregated_amount_simulation_check + """ + GetPackingList + PackPackingList + Tic + """ + self.aggregated_amount_simulation_check + """ + StartPackingList + StopPackingList + DeliverPackingList + Tic + """ + self.aggregated_amount_simulation_check + """ + GetInvoice + CheckInvoiceCausalityStateSolved + CheckInvoiceNormalMovements + CheckInvoiceTradeModelRelatedMovements + + SetTradeConditionOld + + CreateTradeCondition + SpecialiseTradeConditionWithBusinessProcess + CreateTradeModelLine + ModifyTradeModelLineNewTax + CreateTradeModelLine + ModifyTradeModelLineNewDiscount + Tic + + SpecialiseInvoiceTradeCondition + Tic + SetTradeConditionNew + GetOldTradeCondition + CheckInvoiceCausalityStateDiverged + CheckInvoiceNormalMovements + CheckInvoiceTradeModelRelatedMovements + + AdoptPrevisionQuantityInvoice + Tic + + GetNewTradeCondition + CheckInvoiceCausalityStateSolved + CheckInvoiceNormalMovements + CheckInvoiceTradeModelRelatedMovements + """ + sequence_list.addSequenceString(sequence_string) + sequence_list.play(self) def test_TradeModelRuleSimulationBuildInvoiceNewInvoiceLineSupport(self): """Check how is supported addition of invoice line to invoice build from order""" -- 2.30.9