diff --git a/htdocs/societe/class/companybankaccount.class.php b/htdocs/societe/class/companybankaccount.class.php
index 75b57978967069998be399826f764fe2e99f1010..d670b575f750a76d98cd61a1b392f707a88a54f3 100644
--- a/htdocs/societe/class/companybankaccount.class.php
+++ b/htdocs/societe/class/companybankaccount.class.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * 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
@@ -17,7 +18,7 @@
  */
 
 /*
- * 		\files		htdocs/companybankaccount.class.php
+ * 		\files		htdocs/societe/class/companybankaccount.class.php
  *		\ingroup    societe
  *		\brief      File of class to manage bank accounts description
  *   	\version	$Id$
@@ -59,8 +60,8 @@ class CompanyBankAccount
 	}
 
 
-	/*
-	 * Creation du compte bancaire
+	/**
+	 * Create bank information record
 	 *
 	 */
 	function create()
@@ -80,7 +81,7 @@ class CompanyBankAccount
 		}
 	}
 
-	/*
+	/**
 	 *
 	 *
 	 */
@@ -138,7 +139,7 @@ class CompanyBankAccount
 	 *	@param		id			Id of record
 	 * 	@param		socid		Id of company
 	 */
-	function fetch($id,$socid)
+	function fetch($id,$socid=0)
 	{
 		if (empty($id) && empty($socid)) return -1;
 
@@ -171,14 +172,17 @@ class CompanyBankAccount
 				$this->adresse_proprio = $obj->adresse_proprio;
 			}
 			$this->db->free();
+
+			return 1;
 		}
 		else
 		{
 			dol_print_error($this->db);
+			return -1;
 		}
 	}
 
-	/*
+	/**
 	 *
 	 *
 	 */
@@ -244,6 +248,27 @@ class CompanyBankAccount
 		return false;
 	}
 
+	/**
+	 *
+	 *
+	 */
+	function initAsSpecimen()
+	{
+		$this->bank            = 'MyBank';
+		$this->courant         = 1;
+		$this->clos            = 0;
+		$this->code_banque     = '123';
+		$this->code_guichet    = '456';
+		$this->number          = 'ABC12345';
+		$this->cle_rib         = 50;
+		$this->bic             = 'AA12';
+		$this->iban		       = 'FR999999999';
+		$this->iban_prefix     = 'FR';	// deprecated
+		$this->domiciliation   = 'The bank addresse';
+		$this->proprio         = 'Owner';
+		$this->adresse_proprio = 'Owner address';
+	}
+
 }
 
 ?>
diff --git a/test/CompanyBankAccount.php b/test/CompanyBankAccount.php
new file mode 100644
index 0000000000000000000000000000000000000000..b0c2be044f3bf0eb923fb46e43b16317def4066d
--- /dev/null
+++ b/test/CompanyBankAccount.php
@@ -0,0 +1,192 @@
+<?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/CompanyBankAccount.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
+ */
+
+global $conf,$user,$langs,$db;
+//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/societe/class/companybankaccount.class.php';
+
+if (empty($user->id))
+{
+	print "Load permissions for admin user nb 1\n";
+	$user->fetch(1);
+	$user->getrights();
+}
+
+
+/**
+ * @backupGlobals disabled
+ * @backupStaticAttributes enabled
+ * @covers Commande
+ * @covers OrderLine
+ * @remarks	backupGlobals must be disabled to have db,conf,user and lang not erased.
+ */
+class CompanyBankAccountTest extends PHPUnit_Framework_TestCase
+{
+	protected $savconf;
+	protected $savuser;
+	protected $savlangs;
+	protected $savdb;
+
+	/**
+	 * Constructor
+	 * We save global variables into local variables
+	 *
+	 * @return CompanyBankAccountTest
+	 */
+	function CompanyBankAccountTest()
+	{
+		//$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;
+		$db->begin();	// This is to have all actions inside a transaction even if test launched without suite.
+
+    	print __METHOD__."\n";
+    }
+    public static function tearDownAfterClass()
+    {
+    	global $conf,$user,$langs,$db;
+		$db->rollback();
+
+		print __METHOD__."\n";
+    }
+
+	/**
+	 */
+    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";
+    }
+	/**
+	 */
+    protected function tearDown()
+    {
+    	print __METHOD__."\n";
+    }
+
+    /**
+     */
+    public function testCompanyBankAccountCreate()
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new CompanyBankAccount($this->savdb);
+    	$localobject->initAsSpecimen();
+    	$result=$localobject->create($user);
+
+    	$this->assertLessThan($result, 0);
+    	print __METHOD__." result=".$result."\n";
+    	return $result;
+    }
+
+    /**
+     * @depends	testCompanyBankAccountCreate
+     * The depends says test is run only if previous is ok
+     */
+    public function testCompanyBankAccountFetch($id)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new CompanyBankAccount($this->savdb);
+    	$result=$localobject->fetch($id);
+
+    	$this->assertLessThan($result, 0);
+    	print __METHOD__." id=".$id." result=".$result."\n";
+    	return $localobject;
+    }
+
+    /**
+     * @depends	testCompanyBankAccountFetch
+     * The depends says test is run only if previous is ok
+     */
+    public function testCompanyBankAccountUpdate($localobject)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject->owner='New owner';
+    	$result=$localobject->update($user);
+
+	   	print __METHOD__." id=".$localobject->id." result=".$result."\n";
+    	$this->assertLessThan($result, 0);
+    	return $localobject->id;
+    }
+
+    /**
+     * @depends	testCompanyBankAccountUpdate
+     * The depends says test is run only if previous is ok
+     */
+/*    public function testCompanyBankAccountDelete($id)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new CompanyBankAccount($this->savdb);
+    	$result=$localobject->fetch($id);
+		$result=$localobject->delete($user);
+
+		print __METHOD__." id=".$id." result=".$result."\n";
+    	$this->assertLessThan($result, 0);
+    	return $result;
+    }
+*/
+}
+?>
\ No newline at end of file