From 778a331da53f65125243d62120c7cc05c450f9a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Sat, 3 Mar 2007 13:39:16 +0000
Subject: [PATCH] tests for the behaviour of first_name, last_name & title for
 Person documents

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@13208 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/tests/testPerson.py | 45 ++++++++++++++++++++++++++++++--
 1 file changed, 43 insertions(+), 2 deletions(-)

diff --git a/product/ERP5/tests/testPerson.py b/product/ERP5/tests/testPerson.py
index c9ee000e76..77c1d143ef 100644
--- a/product/ERP5/tests/testPerson.py
+++ b/product/ERP5/tests/testPerson.py
@@ -57,20 +57,24 @@ class TestPerson(ERP5TypeTestCase):
     return ('erp5_base',)
   
   def afterSetUp(self):
+    self.portal = self.getPortal()
     self.login()
-    
+  
   def login(self, quiet=0, run=run_all_test):
     uf = self.getPortal().acl_users
     uf._doAddUser('seb', '', ['Manager'], [])
     uf._doAddUser('ERP5TypeTestCase', '', ['Manager'], [])
     user = uf.getUserById('seb').__of__(uf)
     newSecurityManager(None, user)
+  
+  def _makeOne(self, *args, **kw):
+    from Products.ERP5Type.Document.Person import Person
+    return Person(*args, **kw).__of__(self.portal)
 
   def test_01_CopyPastePersonObject(self, quiet=0, run=run_all_test):
     """ Test copy/paste a Person object. """
     if not run:
       return
-    portal = self.getPortal()
     person_module = self.getPersonModule()
     person = person_module.newContent(portal_type='Person')
     person.setReference('ivan')
@@ -93,6 +97,43 @@ class TestPerson(ERP5TypeTestCase):
     ## its reference must NOT be resetted
     self.assertEquals(person_copy_obj.getReference(), person.getReference())
 
+  # title & first_name, last_name
+  def testEmptyTitle(self):
+    p = self._makeOne('person')
+    self.assertEquals('', p.getTitle())
+  
+  def testSetFirstName(self):
+    p = self._makeOne('person')
+    p.setFirstName('first')
+    self.assertEquals('first', p.getFirstName())
+
+  def testSetLastName(self):
+    p = self._makeOne('person')
+    p.setLastName('last')
+    self.assertEquals('last', p.getLastName())
+
+  def testTitleFromFirstLastName(self):
+    p = self._makeOne('person')
+    p.setFirstName('first')
+    p.setLastName('last')
+    self.assertEquals('first last', p.getTitle())
+
+  def testEditFirstNameLastName(self):
+    # using 'edit' method
+    p = self._makeOne('person')
+    p.edit( first_name='first',
+            last_name='last' )
+    self.assertEquals('first', p.getFirstName())
+    self.assertEquals('last', p.getLastName())
+    self.assertEquals('first last', p.getTitle())
+
+  def testEditTitleFirstNameLastName(self):
+    p = self._makeOne('person')
+    p.edit( first_name='first',
+            last_name='last',
+            title='title' )
+    # no infinite loop :) but there's no guarantee on the behaviour
+
 if __name__ == '__main__':
     framework()
 else:
-- 
2.30.9