diff --git a/test/FactureTest.php b/test/FactureTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6a96c0e277a708d8ced90941095e67d40e1b8431
--- /dev/null
+++ b/test/FactureTest.php
@@ -0,0 +1,167 @@
+<?php
+/* Copyright (C) 2010 Laurent Destailleur  <eldy@users.sourceforge.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ *      \file       test/FactureTest.php
+ *		\ingroup    test
+ *      \brief      This file is an example for a PHPUnit test
+ *      \version    $Id$
+ *		\remarks	To run this script as CLI:  phpunit filename.php
+ */
+//define('TEST_DB_FORCE_TYPE','mysql');	// This is to force using mysql driver
+require_once 'PHPUnit/Framework.php';
+require_once dirname(__FILE__).'/../htdocs/master.inc.php';
+require_once dirname(__FILE__).'/../htdocs/compta/facture/facture.class.php';
+
+/**
+ * @backupGlobals enabled
+ * @backupStaticAttributes enabled
+ */
+class FactureTest extends PHPUnit_Framework_TestCase
+{
+	protected $savconf;
+	protected $savuser;
+	protected $savlangs;
+	protected $savdb;
+
+	/**
+	 * Constructor
+	 * We save global variables into local variables
+	 *
+	 * @return FactureTest
+	 */
+	function FactureTest()
+	{
+		//$this->sharedFixture
+		global $conf,$user,$langs,$db;
+		$this->savconf=$conf;
+		$this->savuser=$user;
+		$this->savlangs=$langs;
+		$this->savdb=$db;
+
+		print __METHOD__." db->type=".$db->type." user->id=".$user->id;
+		//print " - db ".$db->db;
+		print "\n";
+	}
+
+	// Static methods
+  	public static function setUpBeforeClass()
+    {
+    	global $conf,$user,$langs,$db;
+
+    	print __METHOD__."\n";
+		if (! $db->transaction_opened) $db->begin();	// This is to have all actions inside a transaction even if test launched without suite.
+    }
+    public static function tearDownAfterClass()
+    {
+    	global $conf,$user,$langs,$db;
+
+		print __METHOD__."\n";
+    }
+
+	/**
+	 * @backupGlobals enabled
+	 * @backupStaticAttributes enabled
+	 */
+    protected function setUp()
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		print __METHOD__."\n";
+		//print $db->getVersion()."\n";
+    }
+	/**
+	 * @backupGlobals enabled
+	 * @backupStaticAttributes enabled
+	 */
+    protected function tearDown()
+    {
+    	print __METHOD__."\n";
+    }
+
+    /**
+     * @backupGlobals enabled
+ 	 * @backupStaticAttributes enabled
+     * @covers Facture::create
+     */
+    public function testFactureCreate()
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new Facture($this->savdb);
+    	$localobject->initAsSpecimen();
+    	$result=$localobject->create($user);
+
+    	$this->assertLessThan($result, 0);
+    	print __METHOD__." result=".$result."\n";
+    	return $result;
+    }
+
+    /**
+     * @backupGlobals enabled
+     * @backupStaticAttributes enabled
+     * @depends	testFactureCreate
+     * @covers Facture::fetch
+     * The depends says test is run only if previous is ok
+     */
+    public function testFactureFetch($id)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new Facture($this->savdb);
+    	$result=$localobject->fetch($id);
+    	$this->assertLessThan($result, 0);
+    	print __METHOD__." id=".$id." result=".$result."\n";
+    	return $localobject;
+    }
+
+    /**
+     * @backupGlobals enabled
+     * @backupStaticAttributes enabled
+     * @depends	testFactureFetch
+     * @covers Facture::update
+     * The depends says test is run only if previous is ok
+     */
+    public function testFactureUpdate($localobject)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject->note='New note after update';
+    	$result=$localobject->update();
+    	print __METHOD__." id=".$localobject->id." result=".$result."\n";
+    	$this->assertLessThan($result, 0);
+    	return $result;
+    }
+}
+?>
\ No newline at end of file
diff --git a/test/FactureTestSuite.php b/test/FactureTestSuite.php
new file mode 100644
index 0000000000000000000000000000000000000000..cd44e19d8a086d108c68c971ab5c39f9df184ecd
--- /dev/null
+++ b/test/FactureTestSuite.php
@@ -0,0 +1,75 @@
+<?php
+/* Copyright (C) 2010 Laurent Destailleur  <eldy@users.sourceforge.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ *      \file       test/FactureTestSuite.php
+ *		\ingroup    test
+ *      \brief      This file is an example for a PHPUnit test
+ *      \version    $Id$
+ *		\remarks	To run this script as CLI:  phpunit filename.php
+ */
+require_once 'PHPUnit/Framework.php';
+require_once dirname(__FILE__).'/../htdocs/master.inc.php';
+require_once dirname(__FILE__).'/../htdocs/compta/facture/facture.class.php';
+require_once dirname(__FILE__).'/FactureTest.php';
+
+
+class FactureTestSuite extends PHPUnit_Framework_TestSuite
+{
+	protected $savconf;
+	protected $savuser;
+	protected $savlangs;
+	protected $savdb;
+
+  	protected function setUp()
+    {
+		//$this->sharedFixture
+		global $conf,$user,$langs,$db;
+		print __METHOD__." db->type=".$db->type." user->id=".$user->id;
+		//print " - db ".$db->db;
+		print "\n";
+		$this->savconf=$conf;
+		$this->savuser=$user;
+		$this->savlangs=$langs;
+		$this->savdb=$db;
+
+		$db->begin();
+		//print "TO=".$db->transaction_opened;
+    }
+  	protected function tearDown()
+    {
+    	global $conf,$langs,$db,$user;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		print __METHOD__."\n";
+    	//print $db->getVersion();	// Uncomment this to know if db handler is still working
+		//print "TO=".$db->transaction_opened;
+    	$db->rollback();
+    }
+
+
+ 	public static function suite()
+    {
+        return new FactureTestSuite('FactureTest');
+    }
+
+}
+?>
\ No newline at end of file
diff --git a/test/README b/test/README
new file mode 100644
index 0000000000000000000000000000000000000000..440da106fc459a765f59323abcb53f134ab8df72
--- /dev/null
+++ b/test/README
@@ -0,0 +1,11 @@
+README (English)
+--------------------------------
+This directory contains unit tests of Dolibarr code.
+To use them, you must:
+* Install PHPUnit
+* Add an entry in eclipse as external tool for phpunit programm with:
+-Name:      PHPUnit
+-Location:  /usr/bin/php
+-Workspace: ${workspace_loc}
+-Arguments: /usr/bin/phpunit ${resource_path}
+* To run a test, select it and click on menu "Run external tools and choose PHPUnit"
\ No newline at end of file
diff --git a/test/testA.php b/test/testA.php
deleted file mode 100644
index 81de491fef5968b5021a2a42a74609febbecad35..0000000000000000000000000000000000000000
--- a/test/testA.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/* Copyright (C) 2010 Laurent Destailleur  <eldy@users.sourceforge.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/**
- *      \file       test/testA.php
- *		\ingroup    test
- *      \brief      This file is an example for a PHPUnit test
- *      \version    $Id$
- *		\remarks	To run this script as CLI:  phpunit filename.php
- *                  Fails if launched from Eclipse
- */
-require_once 'PHPUnit/Framework.php';
-
-
-class testA extends PHPUnit_Framework_TestCase
-{
-    public function testMyTestA()
-    {
-        $stack = array();
-        $this->assertEquals(0, count($stack));
-
-        array_push($stack, 'foo');
-        $this->assertEquals('foo', $stack[count($stack)-1]);
-        $this->assertEquals(1, count($stack));
-
-        $this->assertEquals('foo', array_pop($stack));
-        $this->assertEquals(0, count($stack));
-    }
-}
-?>
\ No newline at end of file
diff --git a/test/testCase1.php b/test/testCase1.php
deleted file mode 100644
index 5b94182a236b1e8ccd4782003bbe558c699e8585..0000000000000000000000000000000000000000
--- a/test/testCase1.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/* Copyright (C) 2010 Laurent Destailleur  <eldy@users.sourceforge.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/**
- *      \file       test/testA.php
- *		\ingroup    test
- *      \brief      This file is an example for a PHPUnit test
- *      \version    $Id$
- *		\remarks	To run this script as CLI:  phpunit filename.php
- *                  Fails if launched from Eclipse
- */
-require_once 'PHPUnit/Framework/TestCase.php';
-
-
-class testCase1 extends PHPUnit_Framework_TestCase
-{
-    public function __construct()
-    {
-    }
-    protected function setUp()
-    {
-        $tmp = tempnam(null, md5(uniqid()));
-    }
-    protected function tearDown()
-    {// not needed yet
-	}
-    public function testZZZ()
-    {
-		//$this->assertEquals(false, $this->odf->getConfig('IDontExist'));
-    }
-}