diff --git a/test/AdherentTest.php b/test/AdherentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a59ec7e3d857c68adf650da9676a1bf82134806d --- /dev/null +++ b/test/AdherentTest.php @@ -0,0 +1,215 @@ +<?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/AdherentTest.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/adherents/class/adherent.class.php'; + +if (empty($user->id)) +{ + print "Load permissions for admin user with login 'admin'\n"; + $user->fetch('admin'); + $user->getrights(); +} + + +/** + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @covers DoliDb + * @covers Translate + * @covers Conf + * @covers Interfaces + * @covers CommonObject + * @covers Adherent + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class AdherentTest extends PHPUnit_Framework_TestCase +{ + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + + /** + * Constructor + * We save global variables into local variables + * + * @return AdherentTest + */ + function AdherentTest() + { + //$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"; + } + /** + */ + protected function tearDown() + { + print __METHOD__."\n"; + } + + /** + */ + public function testAdherentCreate() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Adherent($this->savdb); + $localobject->initAsSpecimen(); + $result=$localobject->create($user); + + $this->assertLessThan($result, 0); + print __METHOD__." result=".$result."\n"; + return $result; + } + + /** + * @depends testAdherentCreate + * The depends says test is run only if previous is ok + */ + public function testAdherentFetch($id) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Adherent($this->savdb); + $result=$localobject->fetch($id); + + $this->assertLessThan($result, 0); + print __METHOD__." id=".$id." result=".$result."\n"; + return $localobject; + } + + /** + * @depends testAdherentFetch + * The depends says test is run only if previous is ok + */ + public function testAdherentUpdate($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($user); + + print __METHOD__." id=".$localobject->id." result=".$result."\n"; + $this->assertLessThan($result, 0); + return $localobject; + } + + /** + * @depends testAdherentUpdate + * The depends says test is run only if previous is ok + */ + public function testAdherentValid($localobject) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $result=$localobject->validate($user); + print __METHOD__." id=".$localobject->id." result=".$result."\n"; + + $this->assertLessThan($result, 0); + return $localobject->id; + } + + /** + * @depends testAdherentValid + * The depends says test is run only if previous is ok + */ + public function testAdherentDelete($id) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Adherent($this->savdb); + $result=$localobject->fetch($id); + $result=$localobject->delete($id); + + print __METHOD__." id=".$id." result=".$result."\n"; + $this->assertLessThan($result, 0); + return $result; + } + + +} +?> \ No newline at end of file diff --git a/test/CommandeTest.php b/test/CommandeTest.php index 342394096b4bb1fd083392c762fcd719e9f4ec19..a576b82817efd6aef2167c5c076d0da7628c74a7 100644 --- a/test/CommandeTest.php +++ b/test/CommandeTest.php @@ -42,6 +42,7 @@ if (empty($user->id)) * @backupGlobals disabled * @backupStaticAttributes enabled * @covers Commande + * @covers OrderLine * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. */ class CommandeTest extends PHPUnit_Framework_TestCase diff --git a/test/ContratTest.php b/test/ContratTest.php new file mode 100644 index 0000000000000000000000000000000000000000..4ad4012e2ff720ed7458acbbb97e9e4909fdca66 --- /dev/null +++ b/test/ContratTest.php @@ -0,0 +1,217 @@ +<?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/ContratTest.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/contrat/contrat.class.php'; + +if (empty($user->id)) +{ + print "Load permissions for admin user with login 'admin'\n"; + $user->fetch('admin'); + $user->getrights(); +} + + +/** + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @covers DoliDb + * @covers Translate + * @covers Conf + * @covers Interfaces + * @covers CommonObject + * @covers Contrat + * @covers ContratLigne + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class ContratTest extends PHPUnit_Framework_TestCase +{ + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + + /** + * Constructor + * We save global variables into local variables + * + * @return ContratTest + */ + function ContratTest() + { + //$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"; + } + /** + */ + protected function tearDown() + { + print __METHOD__."\n"; + } + + /** + */ + public function testContratCreate() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Contrat($this->savdb); + $localobject->initAsSpecimen(); + $result=$localobject->create($user,$langs,$conf); + + $this->assertLessThan($result, 0); + print __METHOD__." result=".$result."\n"; + return $result; + } + + /** + * @depends testContratCreate + * The depends says test is run only if previous is ok + */ + public function testContratFetch($id) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Contrat($this->savdb); + $result=$localobject->fetch($id); + + $this->assertLessThan($result, 0); + print __METHOD__." id=".$id." result=".$result."\n"; + return $localobject; + } + + /** + * @depends testContratFetch + * The depends says test is run only if previous is ok + */ +/* public function testContratUpdate($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($user); + + print __METHOD__." id=".$localobject->id." result=".$result."\n"; + $this->assertLessThan($result, 0); + return $localobject; + } +*/ + + /** + * @depends testContratFetch + * The depends says test is run only if previous is ok + */ + public function testContratValid($localobject) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $result=$localobject->update_statut($user); + print __METHOD__." id=".$localobject->id." result=".$result."\n"; + + $this->assertLessThan($result, 0); + return $localobject->id; + } + + /** + * @depends testContratValid + * The depends says test is run only if previous is ok + */ + public function testContratDelete($id) + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Contrat($this->savdb); + $result=$localobject->fetch($id); + $result=$localobject->delete($id); + + print __METHOD__." id=".$id." result=".$result."\n"; + $this->assertLessThan($result, 0); + return $result; + } + + +} +?> \ No newline at end of file diff --git a/test/FactureTest.php b/test/FactureTest.php index 63e2b78855540feccc7f558fdf1e6fd1ad85cc2a..c61f71df21b7cdee54a721e9b0d45dc8e84bfaec 100644 --- a/test/FactureTest.php +++ b/test/FactureTest.php @@ -47,9 +47,8 @@ if (empty($user->id)) * @covers Conf * @covers Interfaces * @covers CommonObject - * @covers Societe - * @covers Contact * @covers Facture + * @covers FactureLigne * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. */ class FactureTest extends PHPUnit_Framework_TestCase diff --git a/test/MyTestSuite.php b/test/MyTestSuite.php index 6efb28f4f282f6d6e33887c58b429fb307a23871..b3986a8cb09bf2d9a43eca53c99571cf3abdbabe 100644 --- a/test/MyTestSuite.php +++ b/test/MyTestSuite.php @@ -30,9 +30,6 @@ 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__).'/FactureTest.php'; -require_once dirname(__FILE__).'/PropalTest.php'; -require_once dirname(__FILE__).'/CommandeTest.php'; if (empty($user->id)) { @@ -51,9 +48,16 @@ class MyTestSuite { $suite = new PHPUnit_Framework_TestSuite('PHPUnit Framework'); + require_once dirname(__FILE__).'/AdherentTest.php'; + $suite->addTestSuite('AdherentTest'); + require_once dirname(__FILE__).'/CommandeTest.php'; + $suite->addTestSuite('CommandeTest'); + require_once dirname(__FILE__).'/ContratTest.php'; + $suite->addTestSuite('ContratTest'); + require_once dirname(__FILE__).'/FactureTest.php'; $suite->addTestSuite('FactureTest'); + require_once dirname(__FILE__).'/PropalTest.php'; $suite->addTestSuite('PropalTest'); - $suite->addTestSuite('CommandeTest'); return $suite; } diff --git a/test/PropalTest.php b/test/PropalTest.php index d43a1fda434dcb601bf573d308c01ecc6729252e..16048d878aba0878edd3c1f98a20e6f0fc9f52ab 100644 --- a/test/PropalTest.php +++ b/test/PropalTest.php @@ -42,6 +42,7 @@ if (empty($user->id)) * @backupGlobals disabled * @backupStaticAttributes enabled * @covers Propal + * @covers PropaleLigne * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. */ class PropalTest extends PHPUnit_Framework_TestCase diff --git a/test/README b/test/README index fd69598d839640346a5fd82b96112e1dd85112e5..52b60cc9b4e80c8528b62e7f251b21751abfad76 100644 --- a/test/README +++ b/test/README @@ -21,6 +21,6 @@ Run > phpunit --coverage-html ./report MyTestSuite.php Note that xdebug must be installed for this feature to work. * Generate a report of Unit tests code coverage among all Dolibarr classes: -Increase your PHP memory (memory_limit in php.ini) to 1Gb. +Increase your PHP memory (memory_limit in php.ini) to 528MB. Run > phpunit --configuration ./phpunittest.xml --coverage-html ./report MyTestSuite.php diff --git a/test/phpunittest.xml b/test/phpunittest.xml index 1dad0122a5dc263fb2f10c0438bb660fa437f1d7..24615186bfb6cd0ee03e27b10d996b8839d64b8c 100644 --- a/test/phpunittest.xml +++ b/test/phpunittest.xml @@ -5,9 +5,13 @@ <directory suffix=".php">../htdocs/includes/adodbtime/</directory> <directory suffix=".php">../htdocs/includes/artichow/</directory> <directory suffix=".php">../htdocs/includes/fpdf/</directory> + <file>../htdocs/lib/databases/mssql.lib.php</file> + <file>../htdocs/lib/databases/pgsql.lib.php</file> + <file>../htdocs/lib/databases/mysql.lib.php</file> </blacklist> <whitelist> <directory suffix=".class.php">../htdocs/</directory> + <directory suffix=".lib.php">../htdocs/</directory> </whitelist> </filter> </phpunit> \ No newline at end of file