From 5c7cf8bb551256a76793a41a3f7c6f141e998ce5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Mon, 17 Nov 2008 18:32:32 +0000
Subject: [PATCH] tests that applying a trade condition twice update the order

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@24615 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/tests/testTradeCondition.py | 41 ++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/product/ERP5/tests/testTradeCondition.py b/product/ERP5/tests/testTradeCondition.py
index a1bed279d3..4cc7dfc545 100644
--- a/product/ERP5/tests/testTradeCondition.py
+++ b/product/ERP5/tests/testTradeCondition.py
@@ -296,6 +296,47 @@ class TestApplyTradeCondition(TradeConditionTestCase):
     self.assertEquals(DateTime(2001, 01, 01),
                       self.order.getPaymentConditionPaymentDate())
 
+  def test_apply_trade_condition_twice_update_order(self):
+    self.trade_condition.setSourceSectionValue(self.vendor)
+    self.trade_condition.setDestinationSectionValue(self.client)
+    self.trade_condition.setSourceValue(self.vendor)
+    self.trade_condition.setDestinationValue(self.client)
+    self.trade_condition.setPriceCurrencyValue(self.currency)
+    self.trade_condition.setPaymentConditionTradeDate('custom')
+    self.trade_condition.setPaymentConditionPaymentDate(DateTime(2001, 01, 01))
+    self.order.setSpecialiseValue(self.trade_condition)
+
+    self.order.Order_applyTradeCondition(self.trade_condition, force=1)
+    
+    self.assertEquals(self.vendor, self.order.getSourceSectionValue())
+    self.assertEquals(self.vendor, self.order.getSourceValue())
+    self.assertEquals(self.client, self.order.getDestinationSectionValue())
+    self.assertEquals(self.client, self.order.getDestinationValue())
+    self.assertEquals(self.currency, self.order.getPriceCurrencyValue())
+    self.assertEquals('custom', self.order.getPaymentConditionTradeDate())
+    self.assertEquals(DateTime(2001, 01, 01),
+                      self.order.getPaymentConditionPaymentDate())
+
+    new_vendor = self.portal.organisation_module.newContent(
+                    portal_type='Organisation',
+                    title='New vendor')
+    new_trade_condition = self.trade_condition_module.newContent(
+                    portal_type=self.trade_condition_type,
+                    source_section_value=new_vendor,
+                    payment_condition_trade_date='custom',
+                    payment_condition_payment_date=DateTime(2002, 2, 2))
+
+    self.order.Order_applyTradeCondition(new_trade_condition, force=1)
+    self.assertEquals(new_vendor, self.order.getSourceSectionValue())
+    self.assertEquals(self.vendor, self.order.getSourceValue())
+    self.assertEquals(self.client, self.order.getDestinationSectionValue())
+    self.assertEquals(self.client, self.order.getDestinationValue())
+    self.assertEquals(self.currency, self.order.getPriceCurrencyValue())
+    self.assertEquals('custom', self.order.getPaymentConditionTradeDate())
+    self.assertEquals(DateTime(2002, 02, 02),
+                      self.order.getPaymentConditionPaymentDate())
+
+
   def test_tax_model_line_consistency(self):
     base_1 = self.base_amount.newContent(
                           portal_type='Category',
-- 
2.30.9