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')); - } -}